跨域访问


说到跨域访问,必须先解释一个名词:同源策略。所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同、Host(ip)相同、端口相同的条件,否则访问将被禁止,该访问也就被称为跨域访问。

解决方案:

第一类方案:前端解决方案

  1. JSONP
  2. 使用jQuery的jsonp插件
  3. window.name跨域
  4. window.postMessage方法跨域
  5. document.domain + iframe      (只有在主域相同的时候才能使用该方法)
  6. 动态创建script
  7. location.hash + iframe
  8. web sockets

第二类方案:使用代理

  1. nginx或haproxy代理跨域
  2. nodejs中间件代理跨域

第三类方案:CORS

  跨域资源共享(CORS):通过修改Http协议header的方式,实现跨域。

SpringBoot下实现CORS的四种方式

    • 使用CorsFilter进行全局跨域配置

    • 重写WebMvcConfigurer的addCorsMappings方法

    • 使用CrossOrigin注解

    • 使用HttpServletResponse设置响应头(局部跨域配置)

第四类方案:修改浏览器启动方式

  新建一个chrome快捷方式,右键“属性”,“快捷方式”选项卡里选择“目标”,添加   --disable-web-security

 

相关