同源策略是一种约定,它是浏览器最核心的也是最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能会受到影响。
同源是指协议、端口号、域名一致。
例如:与url(http://store.company.com/dir/page.html)进行对比:
url | 是否跨域 | 原因 |
---|---|---|
http://store.company.com/dir/page.html | 否 | 完全相同 |
http://store.company.com/inner/another.html | 否 | 只有路径不同 |
https://store.company.com/secure.html | 是 | 协议不同 |
http://store.company.com:81/dir/etc.html | 是 | 端口不同(http://默认端口为80) |
http://news.company.com/dir/other.html | 是 | 主机不同 |
面试题:如何解决跨域问题?
解决跨域的方案:
1、(后端)服务器配置CORS(跨域资源共享)。
2) (后端)node.js或nginx,反向代理,把跨域改造成同域。
3)(前端)将JSON升级成JSONP,在JSON的基础上,利用script 标签可以跨域的特性,加上头设置。
网友评论