1.什么是jsonp?
JSONP(JSON with Padding)是的一種非正式傳輸協(xié)議,可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問的問題。
2.為什么使用jsonp崇堰?
因?yàn)榉彩菗碛?src"這個屬性的標(biāo)簽都擁有跨域的能力升熊,比如<script>俄烁、<img>、<iframe>级野。而jsonp就是利用的script標(biāo)簽的src屬性發(fā)起請求页屠,同時允許用戶傳遞一個callback參數(shù)給服務(wù)端,然后服務(wù)端返回?cái)?shù)據(jù)時會將這個callback參數(shù)作為函數(shù)名來包裹住JSON數(shù)據(jù)蓖柔,這樣客戶端就可以隨意定制自己的函數(shù)來自動處理返回?cái)?shù)據(jù)了辰企。
3.例子
//在客戶端發(fā)出請求
var callbackHandler = function(data){
console.log(data);
};
var url = "http://www.xiaobxia.com/user?ide=1212&callback=callbackHandler";
var script = document.createElement('script');
script.setAttribute('src', url);
document.getElementsByTagName('head')[0].appendChild(script);
//后端返回js代碼,代碼內(nèi)容
callbackHandler({
name: 'xiaobxia'
});