我想发布一个简单的http请求,但后端无法接收参数
export class AppComponent {
isMenuCollapsed$:Observable<boolean>;
constructor(private store:Store<reducers.State>,private http:Http) {
this.isMenuCollapsed$ = this.store.select(reducers.getIsCollapsed);
let body: URLSearchParams = new URLSearchParams();
body.set('username', 'admin');
body.set('password', 'admin');
let head = new Headers({
'Content-Type': 'application/json'
});
http.post('api/user/auth',body).subscribe(v => console.log(v));
}
}
这是我的后端代码:
@RestController
@RequestMapping("/user")
public class TestController {
@GetMapping("/get")
public String test(){
return "hello";
}
@PostMapping("/auth")
public String auth(HttpServletRequest request){
return "username:" + request.getParameter("username") +
"|password:" + request.getParameter("password");
}
}
当我使用常规方法时,它起作用了:
但是当我使用angular http时,返回null enter image description here
所以我希望有人可以帮助我,谢谢!
答案 0 :(得分:0)
我认为相反og getParameters
你应该用某些东西来获取请求。创建简单的用户名和密码对象,如
let body={username:"admin", password:"admin"}
在传递请求之前对字体进行字符串化。
this.http.post(...., Json.stringify(body))
答案 1 :(得分:0)
你需要让后端和前端发布对象