#reactjs #spring-boot #axios #cors
#reactjs #spring-boot #axios #cors
Вопрос:
У меня проблема, когда я пытаюсь получить доступ к серверной части.
Вопросы:
- Есть ли какие-либо настройки CORS в ReactJS?(в axios создать или ..)
- Есть ли лучший способ выполнить конфигурацию CORS в Spring Boot и ReactJS?
конфигурации приведены ниже того, что я сделал,
Доступ к XMLHttpRequest
at 'http://localhost:8282/opsprime/api/products?title_contains=a'
из источника 'http://localhost:3000'
заблокирован политикой CORS: ответ на предполетный запрос не проходит проверку контроля доступа: у него нет статуса HTTP ok.
Итак, я настроил серверную часть (spring boot) как,
@RestController
@CrossOrigin(origins = "*", allowedHeaders = "*")
public class TestController {
....
}
и это конфигурация ReactJS,
export default axios.create({
baseURL: 'http://localhost:8282/opsprime/api',
timeout: 1000,
headers: {
'Authorization' : `Bearer 4b21949a-4829-43cc-asex-1d0512478676`
}
});
Комментарии:
1. Я предполагаю, что вы работаете с chrome, который имеет политику блокировки каждого запроса cors. Для разработки вам необходимо установить подобное расширение, которое разрешает запросы cors в вашем браузере.
2. Я делал это раньше..
Ответ №1:
Добавьте этот код в конфигурацию приложения spring boot, вы можете изменить значение CORS_ORIGIN_ALLOW, чтобы определить, на каких методах может быть реализован CROSS .
@Configuration
public class CorsSecurity implements WebMvcConfigurer {
private final String[] CORS_ORIGIN_ALLOW = {"/**"};
@Override
public void addCorsMappings(CorsRegistry registry) {
for (String cors : CORS_ORIGIN_ALLOW)
registry.addMapping(cors).allowedOrigins("*").allowedHeaders("*").allowedMethods("*");
}
}
Комментарии:
1. Спасибо. У меня была проблема в моем pom-файле (зависимость от oauth), поэтому я отключил это и перезапустил сервер, после чего это сработало. Затем я добавил зависимость oauth. Он работает правильно