Ошибка CORS при доступе к одному и тому же ресурсу с помощью GET и POST - PullRequest
0 голосов
/ 24 октября 2019

При доступе к ресурсу с помощью GET я проверяю сервер, вошел ли пользователь в систему, и перенаправляю его на страницу входа в систему единого входа на другом сервере, но в том же домене. Это работает просто отлично. Я пытался сделать то же самое, когда пользователь отправляет POST тот же ресурс, но теперь браузер показывает мне, что на запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». '. Почему он работает с GET, а не с POST?

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Вам нужно проверить, был ли ваш бэкэнд уже настроен на cors, для методов GET, POST и других HTTP.

Мой конфигурационный класс Spring имеет такую ​​конфигурацию:

Например:

   @Bean
public CorsConfigurationSource corsConfigurationSource() {
    CorsConfiguration corsConfiguration = new CorsConfiguration();
    corsConfiguration.setAllowedOrigins(Arrays.asList("*"));
    corsConfiguration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"));
    corsConfiguration.setAllowedHeaders(Arrays.asList("authorization", "content-type", "x-auth-token"));
    corsConfiguration.setExposedHeaders(Arrays.asList("x-auth-token"));

    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", corsConfiguration);

    return source;
}
0 голосов
/ 24 октября 2019

У меня были похожие проблемы с использованием Spring Boot и Restful API.

Вы должны включить Access-Control-Allow-Origin в заголовок, например:

@RequestMapping("responseHeader")   
public @ResponseBody ResponseEntity<String> responseHeaderExample(){
        HttpHeaders responseHeaders = new HttpHeaders();
        responseHeaders.set("Access-Control-Allow-Origin", "*");

        String _response = "Hello Word";

return new ResponseEntity<String>(_response, HttpStatus.OK).ok().headers(responseHeaders).body(_response);
}
...