亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Angular 調用 java web API 中為 http.post 傳遞參數

在 Angular 調用 java web API 中為 http.post 傳遞參數

桃花長相依 2021-09-15 16:52:10
我有一個奇怪的情況,可能是因為我錯過了一些我沒有意識到或不知道的事情。我正在使用 Angular 創建一個簡單的登錄 UI,并調用在 java 中創建的 Web API。java web API函數如下@RequestMapping(value = "/logon", method = RequestMethod.POST, produces = {"application/json"})@ResponseBodypublic String logon(        @RequestParam(value = "userID", required = true) String userID,        @RequestParam(value = "password", required = true) String password,        HttpServletRequest request)現在,如果我使用 http.post 如下login(username: string, password: string) {    return this.http.post(this.url+"/security/logon/",                           JSON.stringify({ userID: username, password: password }) )然后我在 Google Chrome 瀏覽器中收到以下錯誤:POST http://localhost:8080/logon/ 400 (Required String parameter 'userID' is not present)但是,如果我將代碼更改如下:login(username: string, password: string) {    var usrpwd = "userID=" + username + "&password=" + password;    return this.http.post(this.url+"/security/logon?"+usrpwd, usrpwd )它完美地工作。我錯過了什么嗎?為什么應該是傳遞的參數的 http.post 的第二個參數似乎不起作用?提前感謝您的任何回復或反饋。
查看完整描述

2 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

您正在使用兩個必需參數定義端點 url,并且此類參數必須在 url 中(請在此處查看),因此當您向端點發出請求時,該 url 必須為:

http://localhost:8080/logon?userID=yourUserId&password=yourUserPassword

在第一個實現中,您沒有向 url 添加查詢參數,因此向 url http://localhost:8080/logon/發出請求,因為它沒有所需的參數,您的 web 層返回400 http code,這意味著一個錯誤的請求(因為再次,您的 url 不包含所需的參數)。


查看完整回答
反對 回復 2021-09-15
  • 2 回答
  • 0 關注
  • 230 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號