最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JSONP 的原理、理解 與 實(shí)例分析

 更新時(shí)間:2020年05月16日 10:06:05   作者:星耀學(xué)園  
這篇文章主要介紹了JSONP 的原理、理解與實(shí)例,結(jié)合實(shí)例形式分析了JSONP 的基本概念、原理、理解與使用技巧,需要的朋友可以參考下

本文實(shí)例講述了JSONP 的原理、理解 與 實(shí)例。分享給大家供大家參考,具體如下:

1.什么是jsonp

1.1 同源策略 

瀏覽器同源策略的限制,XmlHttpRequest只允許請(qǐng)求當(dāng)前源(相同域名、協(xié)議、端口)的資源。

-1)jsonp只支持get請(qǐng)求

-2)不受同源策略限制 ,兼容性好 不需要XMLHttpRequest(ActiveX)支持,通過(guò)js回調(diào)函數(shù)返回結(jié)果

-3)不能解決 不同域的兩個(gè)頁(yè)面之間js調(diào)用的問題

2. jsonp 原理

動(dòng)態(tài)添加一個(gè)script標(biāo)簽,get鏈接上發(fā)送回調(diào)函數(shù)名稱 傳給服務(wù)器 服務(wù)器獲取回調(diào)函數(shù)名稱 返回這個(gè)函數(shù)名稱的JS函數(shù)(拼裝函數(shù)) json數(shù)據(jù)作為函數(shù)的實(shí)際參數(shù)傳入 返回的數(shù)據(jù)是js函數(shù)  在前端調(diào)用回調(diào)函數(shù)( json數(shù)據(jù)傳入) 執(zhí)行回調(diào)函數(shù)

3.實(shí)例

先來(lái)說(shuō)說(shuō) 服務(wù)端應(yīng)該返回的數(shù)據(jù)形式 如下所示 用的php  thinphp框架編寫的 訪問URL 是 

http://91hx.xicp.cn:8989/Service/Validata/testJsonP?callback=jsonpCallback callback后面的名字要傳給服務(wù)器的 后端拼裝成一個(gè)js回調(diào)函數(shù) 這樣前臺(tái)json數(shù)據(jù)就作為回調(diào)函數(shù)的參數(shù)傳入 獲取到數(shù)據(jù)了

 public function testJsonP(){
    $jsonname =I('get.callback');//獲取URL上的callback名稱 也就是獲取jsonpCallback

    $a = [name=>'張三',sex=>'男',msg=>'返回成功!'];// 一個(gè)數(shù)組數(shù)據(jù)
    $json = json_encode($a);// 轉(zhuǎn)成json數(shù)據(jù)

    echo $jsonname.'('.$json.');';//正確的格式應(yīng)該是這樣 jsonpCallback({"name":"\u5f20\u4e09","sex":"\u7537","msg":"\u8fd4\u56de\u6210\u529f\uff01"}); 不要忘記分號(hào); 這樣返回的才是一個(gè)js函數(shù) 前臺(tái)肯定有這個(gè)函數(shù)名字才行

}

tip:關(guān)聯(lián)數(shù)組 上面例子 $a = array( "msg" => "返回成功!")

前臺(tái) 訪問URL http://localhost:63343/H5/jsonP.html 動(dòng)態(tài)添加一個(gè)script標(biāo)簽 src里 調(diào)用回調(diào)函數(shù) jsonpCallback() . ?callback=jsonpCallback名字隨便起 后端獲取的就是jsonpCallback這個(gè)名字而已 

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
</head>
<body>

<script type="text/javascript">

  function jsonpCallback(date){
    console.log(date);
    alert(date);
    alert(date.msg);
  }
  var script =document.createElement('script');
  script.src='http://91hx.xicp.cn:8989/Service/Validata/testJsonP?callback=jsonpCallback';
  document.body.insertBefore(script,document.body.firstChild);


</script>

</body>
</html>

 我們可以在瀏覽器里 這里我用的谷歌直接查看 數(shù)據(jù)是否訪問正確 切換到Network標(biāo)簽下 可以看到生成的訪問地址 點(diǎn)擊然后

 

這下面的圖 點(diǎn)擊一下左側(cè)鏈接   切換到Response就可以看到響應(yīng)的數(shù)據(jù)了 跟前端寫的函數(shù)名要一致 里面的json數(shù)據(jù)就是 那個(gè)函數(shù)的參數(shù) 傳入 別忘記有分號(hào);

前端我們已經(jīng)console.log 數(shù)據(jù)了 也可以查看 切換到Console標(biāo)簽下

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript中ajax操作技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Firefox下設(shè)為主頁(yè)的JavaScript代碼

    Firefox下設(shè)為主頁(yè)的JavaScript代碼

    在IE下,我們可以輕松使用以下代碼來(lái)實(shí)現(xiàn)設(shè)置主頁(yè) 但在firefox我們需要做的更多
    2008-09-09
  • uniapp中修改打包路徑的實(shí)現(xiàn)步驟

    uniapp中修改打包路徑的實(shí)現(xiàn)步驟

    本文主要介紹了uniapp中修改打包路徑,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • 如何使用JavaScript檢測(cè)空閑的瀏覽器選項(xiàng)卡

    如何使用JavaScript檢測(cè)空閑的瀏覽器選項(xiàng)卡

    這篇文章主要介紹了如何使用JavaScript檢測(cè)空閑的瀏覽器選項(xiàng)卡,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 瀏覽器緩存技術(shù)實(shí)現(xiàn)淺析

    瀏覽器緩存技術(shù)實(shí)現(xiàn)淺析

    這篇文章主要為大家介紹了瀏覽器緩存技術(shù)實(shí)現(xiàn)淺析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Webpack之plugin的使用

    Webpack之plugin的使用

    本文主要介紹了Webpack之plugin的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 小程序自定義圓形進(jìn)度條

    小程序自定義圓形進(jìn)度條

    這篇文章主要為大家詳細(xì)介紹了小程序自定義圓形進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 簡(jiǎn)化版手機(jī)端照片預(yù)覽組件

    簡(jiǎn)化版手機(jī)端照片預(yù)覽組件

    這篇文章主要介紹了簡(jiǎn)化版手機(jī)端照片預(yù)覽組件的相關(guān)資料,需要的朋友可以參考下
    2015-04-04
  • 微信小程序模板消息限制實(shí)現(xiàn)無(wú)限制主動(dòng)推送的示例代碼

    微信小程序模板消息限制實(shí)現(xiàn)無(wú)限制主動(dòng)推送的示例代碼

    這篇文章主要介紹了微信小程序模板消息限制實(shí)現(xiàn)無(wú)限制主動(dòng)推送的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • javascript添加前置0(補(bǔ)零)的幾種方法

    javascript添加前置0(補(bǔ)零)的幾種方法

    很多時(shí)候?yàn)榱孙@示格式,需要在某一字符串不滿位的情況下進(jìn)行前補(bǔ)0操作。下面這篇文章就給大家主要介紹了javascript添加前置0(補(bǔ)零)的幾種方法,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01
  • 詳解TypeScript中類的定義與用法

    詳解TypeScript中類的定義與用法

    TypeScript是一種開源的編程語(yǔ)言,它是JavaScript的超集,這篇文章主要來(lái)和大家介紹一下TypeScript中類的定義與用法,感興趣的小伙伴可以了解一下
    2023-06-06

最新評(píng)論

英超| 五常市| 忻城县| 冀州市| 孙吴县| 西盟| 康定县| 南昌市| 忻州市| 杂多县| 耒阳市| 岑巩县| 镶黄旗| 连平县| 谢通门县| 绥阳县| 盘锦市| 泸州市| 水城县| 金昌市| 化德县| 沿河| 临江市| 霍林郭勒市| 达日县| 余庆县| 孝昌县| 湛江市| 上饶县| 河南省| 永修县| 英吉沙县| 民和| 海城市| 竹北市| 越西县| 辉县市| 嘉峪关市| 简阳市| 阜阳市| 乌兰察布市|