spring 解决跨域问题

首先,如何在本机模拟跨域问题

  • 配置Hosts
    127.0.0.1 www.a.com www.b.com
  • 在线目中,添加测试页面,页面中发起ajax请求本项目接口,接口地址使用www.b.com域名
  • 使用www.a.com域名访问测试页面

这样,就模拟了www.a.com 请求www.b.com ,发生跨域

解决跨域问题,主要是在response中添加允许跨域的属性

方式1,添加拦截器

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "*");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Content-Type");
        return true;
    }

方式2,在请求方法上添加注解

@CrossOrigin(allowCredentials = "true", maxAge = 3600)

RequestMappingHandlerMapper.initCorsConfiguration 会根据该注解判断是否需要添加response头。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 因为项目进行前后端分离, 就遇上了跨域的问题. 折腾了很久, 这里整理下.前后端部署在一起或者用nginx代理了,...
    yfmei阅读 1,302评论 1 0
  • 所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)端口号(port) 同源...
    伯纳阅读 1,285评论 0 0
  • 1. 什么是跨域? 跨域一词从字面意思看,就是跨域名嘛,但实际上跨域的范围绝对不止那么狭隘。具体概念如下:只要协议...
    他在发呆阅读 830评论 0 0
  • JS跨域问题 协议不同如http, https; 端口不同 主域相同,子域不同 主域不同 ip地址和域名浏览器不会...
    trump2018阅读 545评论 0 1
  • 山城重庆是女儿一心想来的地方,原因很简单,这里是她曾经的偶像的故乡。我太轻视重庆的路了,从高铁站一下来,也...
    sjx0920阅读 517评论 0 0