Проблема Access-Control-Allow-Origin в ReactJS

#reactjs #spring-boot #axios #cors

#reactjs #spring-boot #axios #cors

Вопрос:

У меня проблема, когда я пытаюсь получить доступ к серверной части.

Вопросы:

  1. Есть ли какие-либо настройки CORS в ReactJS?(в axios создать или ..)
  2. Есть ли лучший способ выполнить конфигурацию 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. Он работает правильно