![](/img/trans.png)
[英]ERROR Failed to load resource: the server responded with a status of 403 () en angular
[英]the server responded with a status of 403 (Forbidden) angular
当我尝试使用this.http.get
和@GetMapping
调用时,我可以将调用发送到 spring 控制器,
当我尝试从this.http.get
更改为this.http.post
以及从@GetMapping
为@PostMapping
我无法调用 spring 控制器/api/v1/basicauth
方法。
因为我PostMapping
户名和密码,所以我只想使用PostMapping
我的代码如下:-
角
var formData: any = new FormData();
formData.append("userName", username);
formData.append("password", password);
let params = new HttpParams();
params = params.append('username', username);
params = params.append('password', password);
return this.http.post<any>('/api/v1/basicauth', { formData }).pipe(map((res) => {
this.username = username;
this.password = password;
}));
弹簧靴:-
@PostMapping(path = "/basicauth")
public AuthenticationBean helloWorldBean(@RequestBody UserDetails user) {
log.info("Start helloWorldBean method");
用户详细信息.java
public class UserDetails {
private int userId;
private String userName;
private String password;
}
客户端
login(username: string, password: string) {
return this.http.post<any>('/api/v1/basicauth', { username, password })
.pipe(map(user => {
// eg.
// localStorage.setItem('currentUser', JSON.stringify(user));
return user;
}));
示例来自: https : //jasonwatmore.com/post/2019/06/22/angular-8-jwt-authentication-example-tutorial
服务器端
您正在使用@RequestParam 检索参数,这意味着您将参数设置为http://host:8080/api/auth?password=abc&...
。
不要使用FormData (Angular)
因为您的控制器正在接受@RequestBody
你的formData
应该是这样的
var formData = {"username": username, "password": password};
Rest 会自动将其反序列化为UserDetails
类
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.