首页 > 解决方案 > @CrossOrigin 不适用于 POST 方法

问题描述

你好我正在开发一个网络应用程序。后端使用 Spring 运行,前端使用 React。如果我使用 POST Http 方法,我会遇到 CrossOrigin 的问题。这是我的js代码:

const LOGIN_URL = "http://localhost:8080/auth/login";

login(username, password) {
return axios.post(LOGIN_URL, {
  username,
  password,
});

}

在这里我收到一个错误:

Java Spring 示例代码:

@CrossOrigin(origins = "*")

@RestController
@RequestMapping("/auth")

public class AuthController {

 ...

@PostMapping("/login") 

public ResponseEntity<?> signInUser(@RequestBody LoginBody loginBody){

.....

 return ResponseEntity.ok("OK");

}

但是如果我使用 GET 请求,像这样:

JS代码:

  hello() {
return axios.get(HELLO_URL);}

Java 代码:

@CrossOrigin
@RestController
@RequestMapping("public")
public class HelloWorld {

@GetMapping("/hello")
public String helloWorld() {return "Hello ";}

}

我没有错误。一切正常

你知道如何解决这个问题吗?

标签: javascriptjavareactjsspring

解决方案


在 @PostMapping("/login") 注释之上添加 @CrossOrigin 而不是在类级别使用。


推荐阅读