跨域跨的是什么?后端如何解决?

跨域跨的是域名,端口,协议

跨域解决方案

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设置想要的名字

参考:https://segmentfault.com/a/1190000011145364

发布了45 篇原创文章 · 获赞 44 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/Goligory/article/details/89026489