为什么会出现跨域?

跨域问题的产生,源自浏览器的一个同源策略。

同源策略的概念

同源策略是由 Netscape 提出的一个著名的安全策略,它是浏览器最核心也是最基本的安全功能,所有支持 JavaScript 的浏览器都会使用这个策略.
在同源策略中,要求 域名、协议、端口 3部分都要相同

什么是域名、协议、端口

如: https://www.baidu.com

  • 域名:baidu.com
  • 端口:默认端口22
  • 协议:https协议

同源策略的规则

URL 说明 是否运行通信
http://www.baidu.com/a.js
http://www.baidu.com/b.js
同一个域名、同一个协议、同一个端口 允许通信
http://www.baidu.com/a/a.js
http://www.baidu.com/b/b.js
同一个域名、同一个协议、同一个端口,不同的文件夹下 允许通信
http://www.baidu.com:8080/a.js
http://www.baidu.com/b.js
不同端口 不允许通信
http://www.baidu.com/a.js
http://script.baidu.com/b.js
同一域名、子域不同 不允许通信
http://www.baidu.com/a.js
 http://12.456.45.41/b.js
域名与对应域名ip 不允许通信

同源策略的作用

浏览器中不能跨站执行其他网站的脚本,这是浏览器对JavaScript实施的一种安全限制。
提高了攻击成本,保证了服务器的安全。

跨域问题

只要出现域名、协议、端口中有一个不能对应,就会出现跨域问题,也就不能进行访问

跨域的解决方案

Java后端进行跨域解决CORS

参考文献

https://baijiahao.baidu.com/s?id=1726052869296463498&wfr=spider&for=pc