【发布时间】:2016-11-10 01:13:07
【问题描述】:
我正在使用带有 OAuth2(版本:4.0.4.RELEASE)和 spring(版本:4.3.1.RELEASE)的 Spring Security。
我正在使用 Angular 开发前端,并且正在使用 grunt connect:dev (http://127.0.0.1:9000)。当我尝试通过本地主机地址登录时,一切正常,但从其他我收到错误:
“XMLHttpRequest 无法加载 http://localhost:8084/oauth/token?client_id=MY_CLIENT_ID。对预检请求的响应未通过访问控制检查:请求的资源上不存在 'Access-Control-Allow-Origin' 标头。因此不存在来源 'http://127.0.0.1:9000'允许访问。响应的 HTTP 状态代码为 401。"
我已经在 WebMvcConfigurerAdapter 中配置了映射(Overrided public void addCorsMappings(CorsRegistry registry))(如下所示),但它仍然不适用于http://127.0.0.1:9000。
registry.addMapping("/**")
.allowedOrigins("http://127.0.0.1:9000")
.allowedMethods("POST", "OPTIONS", "GET", "DELETE", "PUT")
.allowedHeaders("X-Requested-With,Origin,Content-Type,Accept,Authorization")
.allowCredentials(true).maxAge(3600);
配置基于:https://spring.io/guides/gs/rest-service-cors/
请给我指出正确的方向来解决这个问题。
【问题讨论】:
-
如果我理解正确,您正在尝试从不同的 ip 127.0.0.1 访问。 (您不再在本地主机中)。但是您只允许从 localhost (127.0.0.1) 访问
-
Periklis - 是的,我正在尝试从不同的 IP 访问。我只能从localhost:8084 获得许可。
-
Oleg Kurbatov - 谢谢,我知道这个链接,但所有内容都来自文档。我完成了文档中的所有操作,但仍然无法正常工作。在我的配置中,我不使用 web.xml
-
订购过滤器怎么样?有什么想法吗?
标签: java angularjs spring spring-security cors