请求一个不同源地址:就是我们所说的跨域请求.
同源策略中的同源指的是:
- 协议相同,
- 域名相同,
- 端口相同
同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据.
如果非同源,以下三种行为都将收到限制:
1. Cookie、LocalStorage 和 IndexDB 无法读取。
2. DOM 无法获得。
3. AJAX 请求不能发送。
当前页面访问地址: http://day-12.io/12-cross-orgin.html
希望被请求的地址: http://locally.uiee.com/categories
校验目标:
-
能发出去. 2. 能收回来
img link script iframe -
img可以引入外部图片资源
可以发送不同源地址之间的请求
无法拿到响应结果 -
link.真正的定义: 链入一个文档,通过 rel 属性申明链入的文档与当前文档之间的关系,
可以发送不同源地址之间的请求,
无法拿到响应结果.var link = document.createElement(‘link’);
link.rel = ‘stylesheet’;
link.href = ‘http://locally.uieee.com/categories’;
document.body.appendChild(link);
-
script
可以发送不同源地址之间的请求,
借助于能够作为js执行,
无法拿到响应结果
var script = document.createElement(‘script’);
script.src = ‘http://locally.uieee.com/categories’;
document.body.appendChild(script); // 开始发起请求
相当于请求的回调 :
function foo(res){
console.log(res);
}
后台接口里返回一个foo函数包裹的js代码(在json格式的字符串外面包裹了一个函数的调用),
返回的结果就变成了一段 js 代码.
响应内容类型 header(‘Content-Type:application/javascript’);
echo “foo({$json})”;