Jsonp原理:
咱們先看看POST的數(shù)據(jù)發(fā)送位置:
GET的數(shù)據(jù)發(fā)送位置:
那什么情況下會(huì)發(fā)生跨域呢?
當(dāng)本機(jī)請求服務(wù)器上數(shù)據(jù)的時(shí)候:會(huì)發(fā)生跨域;
當(dāng)本地服務(wù)器請求其他服務(wù)器數(shù)據(jù)的時(shí)候回發(fā)生跨域;
為什么要跨域呢?
同源策略:基于瀏覽器的安全考慮,瀏覽器各個(gè)廠商之間出現(xiàn)了一個(gè)約定,這個(gè)約定叫做同源策略。這個(gè)約定的主要內(nèi)容就是,域和域之間數(shù)據(jù)不共通。
跨域的用途是什么?
當(dāng)網(wǎng)站發(fā)展壯大到一定地步的時(shí)候,會(huì)建立很多的節(jié)點(diǎn),各個(gè)節(jié)點(diǎn)的IP是不同的,所以跨域問題就會(huì)出現(xiàn)。
當(dāng)測試階段數(shù)據(jù)和本機(jī)的IP不通用的時(shí)候,那么跨域問題也會(huì)發(fā)生。
為什么要跨域?
因?yàn)橐@得其他域中的數(shù)據(jù);
JSONP解決跨域的原理。
JSONP。
JSONP是什么那?
說到JSONP不得不說一說程序員了:
JSONP是偉大程序員與安全策略的斗爭中發(fā)明的;
JSONP就是在URL中調(diào)用function;
function handle(res){
alert(res.city+":"+res.region_name+":"+res.ip)
}
var script=document.createElement('script');
script.src='http://freegeoip.net/json/?callback=handle'
window.onload=function(){
body.appendchild(script)
}