什么是跨域:
什么是跨域呢?页面a不能请求页面b的脚本,获取其他网站的资源,因为页面a和页面b不在同一个域,被浏览器的同源策略机制所限制,无法发送请求。
同源策略机制:
同源策略,它是由Netscape提出的一个著名的安全策略。
现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。
当一个浏览器的两个tab页中分别打开百度和谷歌的页面
当一个百度浏览器执行一个脚本的时候会检查这个脚本是属于哪个页面的
即检查是否同源,只有和百度同源的脚本才会被执行。
JSON和JSONP的区别:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
JSONP 是一种非官方的协议
JSONP解决跨域的原理:
大家都知道script标签具有跨域的能力,所以JSONP利用该标签的跨域能力,绕开浏览器的同源策略机制。
function addScriptTag(src){
var script = document.createElement('script');
script.setAttribute("type","text/javascript");
script.src = src;
document.body.appendChild(script);
}