美文网首页
spring 解决跨域问题

spring 解决跨域问题

作者: 一颗北上广的心 | 来源:发表于2020-01-19 17:35 被阅读0次

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

  • 配置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头。

相关文章

网友评论

      本文标题:spring 解决跨域问题

      本文链接:https://www.haomeiwen.com/subject/gnorzctx.html