跨域访问
说到跨域访问,必须先解释一个名词:同源策略。所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同、Host(ip)相同、端口相同的条件,否则访问将被禁止,该访问也就被称为跨域访问。
解决方案:
第一类方案:前端解决方案
- JSONP
- 使用jQuery的jsonp插件
- window.name跨域
- window.postMessage方法跨域
- document.domain + iframe (只有在主域相同的时候才能使用该方法)
- 动态创建script
- location.hash + iframe
- web sockets
第二类方案:使用代理
- nginx或haproxy代理跨域
- nodejs中间件代理跨域
第三类方案:CORS
跨域资源共享(CORS):通过修改Http协议header的方式,实现跨域。
SpringBoot下实现CORS的四种方式
-
-
使用CorsFilter进行全局跨域配置
-
重写WebMvcConfigurer的addCorsMappings方法
-
使用CrossOrigin注解
-
使用HttpServletResponse设置响应头(局部跨域配置)
-
第四类方案:修改浏览器启动方式
新建一个chrome快捷方式,右键“属性”,“快捷方式”选项卡里选择“目标”,添加 --disable-web-security