如何定义springPOSTAPI的@RequestParams到Angular的Httppost方法?

How to define @RequestParams of spring POST API to Http post method of Angular?

我有一个 REST API,它接受两个参数,即用户名和密码,并根据前端的用户输入给出结果为 true 或 false。我在将 REST API 调用到我的 angular 8 代码时遇到了一些问题。

SPRING 休息 API

@RequestMapping(value = "/checkData", method = RequestMethod.POST)
public String Authentication(@RequestParam("username") String username, @RequestParam("password") String password) {

}

我正在尝试通过服务通过我的 angular 8 应用程序访问给定的 API 并将服务定义如下:

AuthLoginInfo.ts

export class AuthLoginInfo {
    username: string;
    password: string;
 
    constructor(username: string, password: string) {
        this.username = username;
        this.password = password;
    }
}
checkLogin(userInfo : AuthLoginInfo){
     return this.http.post(`${API_URL}/APP/checkData/${userInfo.username}/
       ${userInfo.password}`,{},{responseType: 'text'})
  }

但是当我 运行 我的应用程序时,我没有得到正确格式的参数。谁能告诉我如何在 HTTP POST API 中定义请求参数?

提前感谢您的建议。

从前端发送它们的方式,它们被视为路径参数而不是查询参数。以同样的方式配置您的后端

@RequestMapping(value = "/checkData/{username}/{password}", method = RequestMethod.POST)
public String Authentication(@PathParam("username") String username, @PathParam("password") String password) {

}

如果您想使用现有代码并且不想更改后端,那么您必须调整前端。由于您的后端现在需要 url 中的查询参数,因此您需要在前端

中发送这些参数
checkLogin(userInfo : AuthLoginInfo){
     return this.http.post(`${API_URL}/APP/checkData?username=${userInfo.username}&
       password=${userInfo.password}`,{},{responseType: 'text'})
  }