在我的开发环境中,我有一个使用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