拦截器
response.addHeader("Access-Control-Allow-Origin","*");
response.addHeader("Access-Control-Allow-Methods","*");
response.addHeader("Access-Control-Max-Age","3600");
response.addHeader("Access-Control-Allow-Headers", "X-Custom-Header,accept,content-type");
//允许客户端发送cookies true表示接收,false不接受 默认为false?
response.addHeader("Access-Control-Allow-Credentials","true");
过滤器
response.addHeader("Access-Control-Allow-Origin","*");
response.addHeader("Access-Control-Allow-Methods","*");
response.addHeader("Access-Control-Max-Age","3600");
response.addHeader("Access-Control-Allow-Headers", "x-requested-with,accept,content-type");
//允许客户端发送cookies true表示接收,false不接受 默认为false?
response.addHeader("Access-Control-Allow-Credentials","true");
chain.doFilter(request, response);
问题一:@CrossOrigin(origins = "*", maxAge = 3600) 时好时坏
本地代码测试,测试库测试都没问题 只要上了正式库就有问题,可能是正式库环境有问题吧,但对比了很久没什么区别;所以为了避免麻烦 最好大家还是用过滤器吧。
问题二:X-Requested-With is not allowed by Access-Control-Allow-Headers
当你看到这个的时候,表示已经可以跨域了 就是请求类型不支持,经测试 如果你加上contentType:'application/json; charset=utf-8',ajax请求就出错 可是 如果不加 参数无法上传。
是的 就加上x-requested-with 表示支持ajax就可以了
response.addHeader("Access-Control-Allow-Headers", "x-requested-with,accept,content-type");
其他的请求头