/ / Реагувати на NodeJS може POST на Spring Boot REST API, але не може PUT на той самий API - випуск CORS - node.js, reactjs, spring-boot, cors

Реагувати на NodeJS можна POST до API REST Spring Boot, але не може PUT до того ж API - проблема CORS - node.js, reactjs, spring-boot, cors

Моя програма React, що працює в Node, може зробити GET іPOST викликає мій API Spring Boot REST, але коли він намагається викликати PUT, на консолі браузера відображається запит OPTIONS, що повертає 403 та наступне повідомлення в консолі:

Не вдалося завантажити http://localhost:8080/project/65: Відповідь на передполіт запит не проходить перевірку контролю доступу: Ні Заголовок "Access-Control-Allow-Origin" присутній у запитуваному запиті ресурс. Походження "http://localhost:3000"тому не дозволено доступ. Відповідь мала код статусу HTTP 403.

Я можу зробити той самий дзвінок PUT від листоноші, і це чудово працює.

У моєму додатку Spring Boot є така конфігурація CORS, але це стосується лише HTML-сервісу, який подається від нього самого, і не впливає на додаток React?

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("http://localhost:8080", "http://localhost:3000");
}
}

Багато гуглінгу, що дозволяє увімкнути CORS у Node, виявило багато інформації про Express, але це, здається, не допоможе.

Відповіді:

0 для відповіді № 1

Оскільки браузер працює як примусовий cors, важко дозволити корс для localhost (від браузера).

Btw: ось чому він працює з інструментами (за винятком запуску в браузері), оскільки вони не є браузерами, не відбувається примусового виконання.

Найпростішим способом було б запустити експрес-сервер Middleware node.

Оскільки http-сервер не заповнює запит кором, у нього більше не повинно виникнути проблем.

Таким чином, процес буде таким:

Фронтенд запит на дзвінок на Локальний сервер http, Локальний сервер http у свою чергу робить запит на сервер ** PayPal ** Так:

Frontend-> localhttp -> PayPal server-> localhttp-> frontend

Frontend і http не мають однакового походження, тому запит Frontend до місцевого http не стосується корсів