Приложение Reactjs не может получить доступ к моему бэкэнду Spring Boot с помощью запросов https [решено] - PullRequest
0 голосов
/ 27 июня 2019

У меня есть приложение 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.

1 Ответ

0 голосов
/ 27 июня 2019

Решением было добавление этой строки в package.json: "proxy": "https://localhost:8443",

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...