JSONP的工做原理

同源策略ajax

跨域的集中方法:json

一、服務器端發送請求,服務器做爲中繼代理(此方法不理解)跨域

二、iframe服務器

三、script標籤app

  經過動過動態生成script標籤,並將src指向目標源的方式(img標籤一樣具備src屬性,用img實現不行嗎?)函數

原生實現方式示例:jsonp

var url="www.xxx.baidu.com/aa.js",url

  scriptTag=document.createElement("script");代理

scriptTag.src=url;ip

document.getElementByTagName("head")[0].appendChild(scriptTag);

function showSth(data){

  alert(data.a);

}

////////////aa.js

var aa={"a":"A"};

showSth(aa);

 

jsonp:

使用script標籤實現跨域訪問、可在url中指定回調函數、獲取json數據並在指定的回調函數中執行

jQuery實現jsonp

//$.getJSON

var url="wwwa.xxx.baidu.com/aa.js?callback=?"

$.getJSON(url,function(data){

  alert(data.a);

});

//$.ajax;

var url="www.xxx.baidu.com/aa.js"

$.ajax({

  url: url,

  dataType: jsonp,

  success:function(data){

    alert(data.a);

  }

});

jQuery 只支持get方式的jsonp實現

jsonp的缺點:

若是返回的數據格式有問題或返回失敗了,並不會報錯。

相關文章
相關標籤/搜索