Network

一、什么是跨域?

当浏览器执行脚本时会检查是否同源,只有同源的脚本才会执行,如果不同源即为跨域。这里的同源指访问的协议、域名、端口都相同。

二、跨域流程

三、如何解决跨域?

3.1 使用Nginx部署为同一域

3.2 配置当次请求允许跨域

在Gateway微服务中,添加配置bean,可以实现此功能:

3.3 其他方法(参考)

1、jsonp
利用了 script 不受同源策略的限制
缺点:只能 get 方式,易受到 XSS攻击

4、Html5 postMessage 方法
允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本、多窗口、跨域消息传递
缺点:浏览器版本要求,部分浏览器要配置放开跨域限制

5、修改 document.domain 跨子域
相同主域名下的不同子域名资源,设置 document.domain 为 相同的一级域名
缺点:同一一级域名;相同协议;相同端口

6、基于 Html5 websocket 协议
websocket 是 Html5 一种新的协议,基于该协议可以做到浏览器与服务器全双工通信,允许跨域请求
缺点:浏览器一定版本要求,服务器需要支持 websocket 协议

7、document.xxx + iframe
通过 iframe 是浏览器非同源标签,加载内容中转,传到当前页面的属性中
缺点:页面的属性值有大小限制

参考文献

————————————————
版权声明:本文为CSDN博主「ConstXiong」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/meism5/article/details/90414283

原文地址:https://www.cnblogs.com/frankcui/p/15202680.html