跨域跨的是域名,端口,协议
跨域解决方案
1、 通过jsonp跨域
2、 document.domain + iframe跨域
3、 location.hash + iframe
4、 window.name + iframe跨域
5、 postMessage跨域
6、 跨域资源共享(CORS)
7、 nginx代理跨域
8、 nodejs中间件代理跨域
9、 WebSocket协议跨域
后端设置,弄个过滤器
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletResponse resp = (HttpServletResponse) response;
resp.setHeader("Access-Control-Allow-Origin", "*");
resp.setHeader("Access-Control-Allow-Methods", "*,DELETE,PUT,POST");
resp.setHeader("Access-Control-Max-Age", "17000");
resp.setHeader("Access-Control-Allow-Headers", "X-AuthToken-With,openId,Content-Type");
resp.setHeader("Access-Control-Allow-Credentials", "true");
resp.setHeader("Content-Type", "application/json");
resp.setHeader("Access-Control-Expose-Headers","Content-Disposition");
resp.setHeader("allow","DELETE,PUT,POST,GET");
chain.doFilter(request, response);
}
可以在Access-Control-Allow-Headers设置想要的名字