Spring Boot + React.js Axios:HTTP POST 调用返回 403 Forbidden

4
在我的开发环境中,我有一个使用Spring Boot构建的后端(BE)和一个使用React.js(Redux + Axios)构建的前端(FE)。每当我尝试使用Axios执行HTTP POST时,我会收到403禁止访问的错误。HTTP GET调用按预期工作,从Postman进行的HTTP POST调用也正常工作

PersonController.java

@RestController
@RequestMapping(value = "/api/v1/person")
public class PersonController {

    @Autowired
    private PersonRepository mPersonDAO;

    @PostMapping
    public ResponseEntity<Person> create(@RequestBody Person person) {
        Person result = mPersonDAO.save(person);
        return new ResponseEntity<>(result, HttpStatus.CREATED);
    }
}

React.js service

import axios from 'axios';

const BASE_URL = 'https://localhost:8080/api/v1';
const PERSON_API = BASE_URL + '/person'

export function syncUser (person, onSuccess) {
  axios({
    method: 'post',
    url: PERSON_API,
    data: {
      person
    }
  }).then((response) => {
      onSuccess(response);
    }).catch(function (error) {
      console.log(error);
    });
}

堆栈跟踪:

localhost/:1 XMLHttpRequest cannot load http://localhost:8080/api/v1/person. 
dispatchXhrRequest @ xhr.js:177
xhrAdapter @ xhr.js:12
dispatchRequest @ dispatchRequest.js:52

Response for preflight has invalid HTTP status code 403
1个回答

1

找到问题了!实际上是CORS问题。我必须在请求来源的域上启用SB上的CORS。答案发布在这里


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接