Laravel Ajax Cross Origin Запрос заблокирован - PullRequest
0 голосов
/ 14 ноября 2018

У меня странная проблема с CORS. API и веб-приложение работают на разных серверах .

Я включил CORS в API, используя пакет laravel-cors , и пытаюсь использовать API с другого сервера.

Я могу использовать API, используя Почтальон , а также Guzzle Http Clients, но он не работает при использовании Ajax .

App Request

Когда я проверяю ответ API; У меня есть заголовок Access-Control-Allow-Origin: *.

API Response

Как я могу это исправить?

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

В промежуточном программном обеспечении VerifyCsrfToken

protected $except = [ 'api/*' ];

0 голосов
/ 14 ноября 2018

мы получим эту проблему, когда клиент и сервер находятся на разных машинах.Spring по умолчанию блокирует запрос от разных хост-клиентов, выдавая недопустимое исключение запроса cors.

Таким образом, вы должны разрешить все источники в коде на стороне сервера.

Если вы используете spring, приведенный ниже фрагмент будетбыть полезным.Добавьте приведенный ниже код в основной класс загрузки Spring или в новый файл конфигурации.

   @Bean
    public <HttpSecurity> WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**")
                        .allowedMethods("*")
                        .allowedHeaders("*");
            }
        };
    }
...