我有一个奇怪的情况,可能是因为我错过了一些我没有意识到或不知道的事情。我正在使用 Angular 创建一个简单的登录 UI,并调用在 java 中创建的 Web API。
java web API函数如下
@RequestMapping(value = "/logon", method = RequestMethod.POST, produces = {"application/json"})
@ResponseBody
public 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 的第二个参数似乎不起作用?
提前感谢您的任何回复或反馈。
千巷猫影
相关分类