Angularjs-请求的资源上不存在“Access-Control-Allow-Origin”标头。

Posted

技术标签:

【中文标题】Angularjs-请求的资源上不存在“Access-Control-Allow-Origin”标头。【英文标题】:Angularjs-No 'Access-Control-Allow-Origin' header is present on the requested resource. 【发布时间】:2017-02-26 13:40:36 【问题描述】:

我正在使用 angularjs 来获取 http 获取请求。我想显示来自远程服务器的一些信息.. 它在任何 http 测试服务器上都可以正常工作。但其他链接无效。

【问题讨论】:

这是解决服务器端的问题,通常是当您调用与前端应用程序不在同一个域中的服务器时。如果您也在管理服务器端,那么您必须在服务器响应上设置正确的 HTTP 标头(请参阅developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS)。 非常感谢.. acutally 我已经尝试了几乎所有的方法 .. 不起作用...根据文档,我添加了所需的代码。但它仍然无法正常工作。同样的问题 "No 'Access-Control-Allow-Origin' header is present on the requested resource"的可能重复 其他回答这个问题的帖子:***.com/q/24134117/466738***.com/q/29547003/466738 【参考方案1】:

Spring 框架提供了类似 Spring Security 的CorsFilter you can use for filter-based frameworks。将以下内容添加到您的 @Configuration 类之一以对其进行配置。

@Bean
public FilterRegistrationBean corsFilter() 
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    CorsConfiguration config = new CorsConfiguration();
    config.setAllowCredentials(true);
    config.addAllowedOrigin("http://localhost:3000");
    config.addAllowedHeader("*");
    config.addAllowedMethod("*");
    source.registerCorsConfiguration("/**", config);
    FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
    bean.setOrder(0);
    return bean;

http://localhost:3000 是您要允许的客户端。

【讨论】:

以上是关于Angularjs-请求的资源上不存在“Access-Control-Allow-Origin”标头。的主要内容,如果未能解决你的问题,请参考以下文章

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源“http://localhost”

执行重定向时浏览器控制台出错 请求的资源上不存在“Access-Control-Allow-Origin”标头

django中的“请求的资源上不存在'Access-Control-Allow-Origin'标头”

如何解决请求的资源上不存在“Access-Control-Allow-Origin”标头

Http.post 请求的资源上不存在“Access-Control-Allow-Origin”标头

请求的资源发布请求上不存在“Access-Control-Allow-Origin”标头