一、同源策略
ͬԴ:协议、域名、端口相同。只要有一个不同就称之为跨域。出现跨域浏览器就要报错。
http://www.a.com/index.html | ͬԴ |
http://www.a.com:81/home.html | 不同源,端口号不同 |
https://www.a.com/home.html | 不同源,协议不同 |
http://www.b.com/home.html | 不同源,域名不同 |
CORS方法
,CORS的请求成功与否取决于服务器是否同意当前域的请求,通过在服务器设置同意当前域的请求来实现跨域访问。在服务器的响应头部设置Access-Control-Allow-Origin:当前域或*
JSONP方法
此方法利用了script标签的src属性,scr属性具备跨域请求资源的能力。a.html请求b.js的数据,动态创建script标签,向服务器请求数据,请求地址后面的callback参数指定函数名。
function req(src){ let script = document.createElement("script"); script.src = src; document.body.appendChild(script); script.onload = function(){ document.body.removeChild(script); } } function getData(data){ console.log(data); //从服务器拿到的数据data } box.onclick = function(){ req("http://www.a.com/b.js?callback = getData"); }
function getData({name:"张三"}) //返回的数据作为参数