Laravel Ajax跨源请求被阻止

时间:2018-11-14 17:06:53

标签: ajax laravel cors

我对CORS有一个奇怪的问题。 API和Web APP运行在不同的服务器上

我使用laravel-cors软件包在API上启用了CORS,并尝试从其他服务器使用该API。

我可以使用 Postman Guzzle Http Client使用API​​,但是在使用 Ajax 时失败。

App Request

当我检查API响应时;我有SessionAs<T>标头。

API Response

我该如何解决?

2 个答案:

答案 0 :(得分:-1)

当客户端和服务器位于不同的计算机上时,我们将出现此问题。 默认情况下,Spring通过引发无效的cors请求异常来阻止来自不同主机客户端的请求。

因此,您应该在服务器端代码中允许所有来源。

如果您使用的是Spring,则以下代码段将很有帮助。 在Spring Boot主类或新的配置文件中添加以下代码。

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

答案 1 :(得分:-1)

在VerifyCsrfToken中间件中

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