谈谈跨域

235 阅读1分钟
  • Cors协议:H5中的新特性:Cross-Origin Resource Sharing(跨域资源共享)

  • 解决跨域的方法有三种

    1. 使用script标签(比如jQuery的JSONP)
    2. CORS(服务端设置Access-Control-Allow-Origin)
    3. 增加反向代理服务器(消除前后端跨域关系)
  • 第一种方法:JSONP原理就是动态创建一个script标签,只能解决GET跨域,需要服务端配合返回回调函数的数据

  • 第二种方法:前端需要设置origin头,另外Java的同学要注意spring的@CrossOrigin注解,如果请求还没进到controller就被拦截器等提前拦了,那么跨域响应就失效了(想想真垃圾,所以我一般都是自己实现过滤器来支持跨域)

  • 第三种方法:通过和前端同源的域名代理服务器,来转发接口数据,使请求本身不存在跨域。这种方式比较粗暴,且需要另外的服务器资源做代理解决,但确是万能方法。

  • 现在的互联网和技术架构下,其实浏览器限制跨域请求的意义是啥?注意说的是限制跨域请求这一部分。