代码之家  ›  专栏  ›  技术社区  ›  bmatovu Randy the Dev

已阻止laravel ajax跨源请求

  •  -1
  • bmatovu Randy the Dev  · 技术社区  · 7 年前

    我对cors有个奇怪的问题。 api和web应用程序正在不同的服务器上运行 .

    我使用 laravel-cors 包,并尝试使用来自不同服务器的API。

    我可以使用 邮递员 以及 狂饮 http客户端,但在使用 阿贾克斯

    App Request

    当我检查api响应时,我有 Access-Control-Allow-Origin: * 标题。

    API Response

    我该怎么解决?

    2 回复  |  直到 7 年前
        1
  •  -1
  •   Karthik P    7 年前

    当客户机和服务器在不同的机器上时,我们会遇到这个问题。 默认情况下,spring通过抛出无效的cors请求异常来阻止来自不同主机客户端的请求。

    所以您应该允许服务器端代码中的所有源代码。

    如果您使用的是spring,下面的代码片段将非常有用。 在spring boot主类或新配置文件中添加以下代码。

       @Bean
        public <HttpSecurity> WebMvcConfigurer corsConfigurer() {
            return new WebMvcConfigurerAdapter() {
                @Override
                public void addCorsMappings(CorsRegistry registry) {
                    registry.addMapping("/**")
                            .allowedMethods("*")
                            .allowedHeaders("*");
                }
            };
        }
    
        2
  •  -1
  •   Dawood Akram    7 年前

    在verifycsrftoken中间件中

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