Моя програма 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 не стосується корсів