У меня есть приложение ReactJS, работающее на https://localhost:8080, и я хотел бы отправить данные POST в мое внутреннее приложение Spring Boot, работающее на https://localhost:8443,, но когда я пытаюсь отправить данные POST ... я получаю эту ошибкув консоли браузера:
TypeError: «NetworkError при попытке извлечь ресурс».Блокировка перекрестного запроса: та же политика происхождения запрещает чтение удаленного ресурса по адресу https://localhost:8443/api/... (причина: запрос CORS не выполнен).
Приложение My Spring Boot, не использующее Spring Security.Я включил HTTPS с помощью этого учебника.Я запустил свое приложение ReactJS с HTTPS=true npm start
и изменил порт реагирующего приложения следующим образом: "start": "PORT=8080 react-scripts start"
inpackage.json
Это мое application.properties:
server.ssl.key-store-password = password
server.ssl.key-store-type = PKCS12
server.ssl.key-alias = tomcat
server.ssl.enabled=true
и вот какпопытался вызвать REST API из React:
fetch('https://localhost:8443/api/..., {
method: 'POST'
}).then((data) => {
if (data.ok) {
this.setState({
response: data })
}
})
.catch(console.log);
Вот мой @RestController:
@RestController
@RequestMapping("/api")
public class MessageReceiverResource {
@CrossOrigin(origins = "https://localhost:8080")
@PostMapping
public Response receiveMessages(@RequestBody Request request){
...
return response;
}
}
Это решение работало нормально, пока я не включил HTTPS.