【网络问题】同源策略、跨域问题
1、什么是源?
源就是协议,域名,端口
例如:http://www.biadu.com:80 其中协议为http协议,域名为www.biadu.com,端口号为:80
同源指的就是两个url的源是相同的,即协议,域名,端口相同
2、同源策略
同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能。即请求其他资源时,浏览器会检测当前源和请求资源的源是否相同,只有相同浏览器才会对请求的资源进行读取。
不受同源策略影响的资源请求方式:
- scrpt 标签请求 js 文件
- link 标签请求 css 文件
- 标签中 src 属性请求资源
- 大部分标签中 href 属性请求资源
3、跨域问题
1)什么是跨域?
跨域就是请求的资源的源和当前的源是不相同的,则协议,域名,端口有任意一个不相同就是跨域
2)什么是跨域问题?
跨域问题就是:由于浏览器的同源策略,当发生跨域请求时,浏览器不会对跨域请求的资源进行读写
4、跨域问题的解决方法
后端配合我们跨域
利用script标签进行资源请求不会受同源策略的限制,但script标签请求的资源会当成js代码来执行
2)后端设置Access-Control-Allow-Origin属性支持跨域
后端设置响应头的Access-Control-Allow-Origin字段,添加允许跨域的域名
后端不配合我们跨域
3)iframe(只能显示不能控制)
4)后端代理
通过自己的后端去请求资源,再发送给前端