带有AngularJS和JAX-RS的CORS
我正在编写一个web应用程序,前端使用AngularJS,后端使用JAX-RS。当chrome中的CORS扩展已启用“enable CORS”时,前端可以向后端成功发出HTTP post请求。当它关闭时,返回一个错误- “Access Control Allow Origin”标头包含多个值“,*”,但只允许一个值。因此,不允许访问源“” 后端有一个CORSFilter.java文件,配置如下- 公共类CORSFilter实现ContainerResponseFilter{带有AngularJS和JAX-RS的CORS,angularjs,post,http-post,cors,jax-rs,Angularjs,Post,Http Post,Cors,Jax Rs,我正在编写一个web应用程序,前端使用AngularJS,后端使用JAX-RS。当chrome中的CORS扩展已启用“enable CORS”时,前端可以向后端成功发出HTTP post请求。当它关闭时,返回一个错误- “Access Control Allow Origin”标头包含多个值“,*”,但只允许一个值。因此,不允许访问源“” 后端有一个CORSFilter.java文件,配置如下- 公共类CORSFilter实现ContainerResponseFilter{ @Override
@Override
public ContainerResponse filter(ContainerRequest request,
ContainerResponse response) {
response.getHttpHeaders().add("Access-Control-Allow-Origin", "*");
response.getHttpHeaders().add("Access-Control-Allow-Headers",
"origin, content-type, accept, authorization");
response.getHttpHeaders().add("Access-Control-Allow-Credentials","true");
response.getHttpHeaders().add("Access-Control-Allow-Methods",
"GET, POST, PUT, DELETE, OPTIONS, HEAD");
return response;
}
}
我在各种stackoverflow帖子中尝试过一些建议,比如删除X-request-WITH并将UseXDomain设置为true-
删除$http.defaults.headers.common['X-Requested-With'];
$http.defaults.useXDomain=true
我还尝试将内容类型更改为Form/URLEncoded,而不是Application/JSON。除了Chrome扩展之外,似乎没有一个能够发送帖子——这让我觉得解决方案应该在客户端
请帮忙提前感谢。首先,尝试定位问题。检查,您是否有“Access Control Allow Origin”头响应ajax请求。若否,那个就意味着服务器端有问题,前端也并没有问题。如果是,似乎您为CORS编写了错误的标题。另外,请看一下使用实际原点作为
访问控制允许原点
而不是*
我有一个值为127.0.0.1:XYZXX的访问控制允许原点作为响应。首先,尝试定位问题。检查,您是否有“Access Control Allow Origin”头响应ajax请求。若否,那个就意味着服务器端有问题,前端也并没有问题。如果是,似乎您为CORS编写了错误的标题。另外,请看一下使用实际原点作为访问控制允许原点
而不是*
我的访问控制允许原点的响应值为127.0.0.1:XYZXX。