婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > AJAX跨域請(qǐng)求JSONP獲取JSON數(shù)據(jù)的實(shí)例代碼

AJAX跨域請(qǐng)求JSONP獲取JSON數(shù)據(jù)的實(shí)例代碼

熱門(mén)標(biāo)簽:怎樣在地圖標(biāo)注文字 東平縣地圖標(biāo)注app 立陶宛地圖標(biāo)注 河間市地圖標(biāo)注app 地圖標(biāo)注推銷(xiāo)坑人 上海企業(yè)外呼系統(tǒng)價(jià)錢(qián) 中國(guó)地圖標(biāo)注不明確情況介紹表 大眾點(diǎn)評(píng)400電話怎么申請(qǐng) 電銷(xiāo)機(jī)器人 長(zhǎng)春

Asynchronous JavaScript and XML (Ajax) 是驅(qū)動(dòng)新一代 Web 站點(diǎn)(流行術(shù)語(yǔ)為 Web 2.0 站點(diǎn))的關(guān)鍵技術(shù)。Ajax 允許在不干擾 Web 應(yīng)用程序的顯示和行為的情況下在后臺(tái)進(jìn)行數(shù)據(jù)檢索。使用XMLHttpRequest 函數(shù)獲取數(shù)據(jù),它是一種 API,允許客戶端 JavaScript 通過(guò) HTTP 連接到遠(yuǎn)程服務(wù)器。Ajax 也是許多 mashup 的驅(qū)動(dòng)力,它可將來(lái)自多個(gè)地方的內(nèi)容集成為單一 Web 應(yīng)用程序。

不過(guò),由于受到瀏覽器的限制,該方法不允許跨域通信。如果嘗試從不同的域請(qǐng)求數(shù)據(jù),會(huì)出現(xiàn)安全錯(cuò)誤。如果能控制數(shù)據(jù)駐留的遠(yuǎn)程服務(wù)器并且每個(gè)請(qǐng)求都前往同一域,就可以避免這些安全錯(cuò)誤。但是,如果僅停留在自己的服務(wù)器上,Web 應(yīng)用程序還有什么用處呢?如果需要從多個(gè)第三方服務(wù)器收集數(shù)據(jù)時(shí),又該怎么辦?

理解同源策略

同源策略阻止從一個(gè)域上加載的腳本獲取或操作另一個(gè)域上的文檔屬性。也就是說(shuō),受到請(qǐng)求的 URL 的域必須與當(dāng)前 Web 頁(yè)面的域相同。這意味著瀏覽器隔離來(lái)自不同源的內(nèi)容,以防止它們之間的操作。這個(gè)瀏覽器策略很舊,從 Netscape Navigator 2.0 版本開(kāi)始就存在。

克服該限制的一個(gè)相對(duì)簡(jiǎn)單的方法是讓 Web 頁(yè)面向它源自的 Web 服務(wù)器請(qǐng)求數(shù)據(jù),并且讓 Web 服務(wù)器像代理一樣將請(qǐng)求轉(zhuǎn)發(fā)給真正的第三方服務(wù)器。盡管該技術(shù)獲得了普遍使用,但它是不可伸縮的。另一種方式是使用框架要素在當(dāng)前 Web 頁(yè)面中創(chuàng)建新區(qū)域,并且使用GET 請(qǐng)求獲取任何第三方資源。不過(guò),獲取資源后,框架中的內(nèi)容會(huì)受到同源策略的限制。

克服該限制更理想方法是在 Web 頁(yè)面中插入動(dòng)態(tài)腳本元素,該頁(yè)面源指向其他域中的服務(wù) URL 并且在自身腳本中獲取數(shù)據(jù)。腳本加載時(shí)它開(kāi)始執(zhí)行。該方法是可行的,因?yàn)橥床呗圆蛔柚箘?dòng)態(tài)腳本插入,并且將腳本看作是從提供 Web 頁(yè)面的域上加載的。但如果該腳本嘗試從另一個(gè)域上加載文檔,就不會(huì)成功。幸運(yùn)的是,通過(guò)添加 JavaScript Object Notation (JSON) 可以改進(jìn)該技術(shù)。

1、什么是JSONP?

要了解JSONP,不得不提一下JSON,那么什么是JSON?

JSON is a subset of the object literal notation of JavaScript. Since JSON is a subset of JavaScript, it can be used in the language with no muss or fuss.

JSONP(JSON with Padding)是一個(gè)非官方的協(xié)議,它允許在服務(wù)器端集成Script tags返回至客戶端,通過(guò)javascript callback的形式實(shí)現(xiàn)跨域訪問(wèn)(這僅僅是JSONP簡(jiǎn)單的實(shí)現(xiàn)形式)。

2、JSONP有什么用?

由于同源策略的限制,XmlHttpRequest只允許請(qǐng)求當(dāng)前源(域名、協(xié)議、端口)的資源,為了實(shí)現(xiàn)跨域請(qǐng)求,可以通過(guò)script標(biāo)簽實(shí)現(xiàn)跨域請(qǐng)求,然后在服務(wù)端輸出JSON數(shù)據(jù)并執(zhí)行回調(diào)函數(shù),從而解決了跨域的數(shù)據(jù)請(qǐng)求。

3、如何使用JSONP?

下邊這一DEMO實(shí)際上是JSONP的簡(jiǎn)單表現(xiàn)形式,在客戶端聲明回調(diào)函數(shù)之后,客戶端通過(guò)script標(biāo)簽向服務(wù)器跨域請(qǐng)求數(shù)據(jù),然后服務(wù)端返回相應(yīng)的數(shù)據(jù)并動(dòng)態(tài)執(zhí)行回調(diào)函數(shù)。

HTML代碼 (任一):

meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
script type="text/javascript"> 
  function jsonpCallback(result) { 
    //alert(result); 
    for(var i in result) { 
      alert(i+":"+result[i]);//循環(huán)輸出a:1,b:2,etc. 
    } 
  } 
  var JSONP=document.createElement("script"); 
  JSONP.type="text/javascript"; 
  JSONP.src="http://crossdomain.com/services.php?callback=jsonpCallback"; 
  document.getElementsByTagName("head")[0].appendChild(JSONP); 
/script> 

或者

Html代碼

meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
script type="text/javascript"> 
  function jsonpCallback(result) { 
    alert(result.a); 
    alert(result.b); 
    alert(result.c); 
    for(var i in result) { 
      alert(i+":"+result[i]);//循環(huán)輸出a:1,b:2,etc. 
    } 
  } 
/script> 
script type="text/javascript" src="http://crossdomain.com/services.php?callback=jsonpCallback">/script> 

JavaScript的鏈接,必須在function的下面。

服務(wù)端PHP代碼 (services.php):

Php代碼 

?php 
//服務(wù)端返回JSON數(shù)據(jù) 
$arr=array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5); 
$result=json_encode($arr); 
//echo $_GET['callback'].'("Hello,World!")'; 
//echo $_GET['callback']."($result)"; 
//動(dòng)態(tài)執(zhí)行回調(diào)函數(shù) 
$callback=$_GET['callback']; 
echo $callback."($result)"; 

 如果將上述JS客戶端代碼用jQuery的方法來(lái)實(shí)現(xiàn),也非常簡(jiǎn)單。

$.getJSON
$.ajax
$.get

客戶端JS代碼在jQuery中的實(shí)現(xiàn)方式1:

Js代碼 

script type="text/javascript" src="jquery.js">/script> 
script type="text/javascript"> 
  $.getJSON("http://crossdomain.com/services.php?callback=?", 
  function(result) { 
    for(var i in result) { 
      alert(i+":"+result[i]);//循環(huán)輸出a:1,b:2,etc. 
    } 
  }); 
/script>  

客戶端JS代碼在jQuery中的實(shí)現(xiàn)方式2:

Js代碼 

script type="text/javascript" src="jquery.js">/script> 
script type="text/javascript"> 
  $.ajax({ 
    url:"http://crossdomain.com/services.php", 
    dataType:'jsonp', 
    data:'', 
    jsonp:'callback', 
    success:function(result) { 
      for(var i in result) { 
        alert(i+":"+result[i]);//循環(huán)輸出a:1,b:2,etc. 
      } 
    }, 
    timeout:3000 
  }); 
/script> 

客戶端JS代碼在jQuery中的實(shí)現(xiàn)方式3:

script type="text/javascript" src="jquery.js">/script> 
script type="text/javascript"> 
    $.get('http://crossdomain.com/services.php?callback=?', {name: encodeURIComponent('tester')}, function (json) { for(var i in json) alert(i+":"+json[i]); }, 'jsonp'); 
/script> 
 
其中 jsonCallback 是客戶端注冊(cè)的,獲取跨域服務(wù)器上的json數(shù)據(jù)后,回調(diào)的函數(shù)。

http://crossdomain.com/services.php?callback=jsonpCallback

這個(gè) url 是跨域服務(wù)器取 json 數(shù)據(jù)的接口,參數(shù)為回調(diào)函數(shù)的名字,返回的格式為

jsonpCallback({msg:'this is json data'})  

Jsonp原理:

首先在客戶端注冊(cè)一個(gè)callback, 然后把callback的名字傳給服務(wù)器。

此時(shí),服務(wù)器先生成 json 數(shù)據(jù)。
然后以 javascript 語(yǔ)法的方式,生成一個(gè)function , function 名字就是傳遞上來(lái)的參數(shù) jsonp.

最后將 json 數(shù)據(jù)直接以入?yún)⒌姆绞剑胖玫?function 中,這樣就生成了一段 js 語(yǔ)法的文檔,返回給客戶端。

客戶端瀏覽器,解析script標(biāo)簽,并執(zhí)行返回的 javascript 文檔,此時(shí)數(shù)據(jù)作為參數(shù),傳入到了客戶端預(yù)先定義好的 callback 函數(shù)里.(動(dòng)態(tài)執(zhí)行回調(diào)函數(shù))

使用JSON的優(yōu)點(diǎn)在于:

比XML輕了很多,沒(méi)有那么多冗余的東西。

JSON也是具有很好的可讀性的,但是通常返回的都是壓縮過(guò)后的。不像XML這樣的瀏覽器可以直接顯示,瀏覽器對(duì)于JSON的格式化的顯示就需要借助一些插件了。

在JavaScript中處理JSON很簡(jiǎn)單。

其他語(yǔ)言例如PHP對(duì)于JSON的支持也不錯(cuò)。

JSON也有一些劣勢(shì):

JSON在服務(wù)端語(yǔ)言的支持不像XML那么廣泛,不過(guò)JSON.org上提供很多語(yǔ)言的庫(kù)。

如果你使用eval()來(lái)解析的話,會(huì)容易出現(xiàn)安全問(wèn)題。

盡管如此,JSON的優(yōu)點(diǎn)還是很明顯的。他是Ajax數(shù)據(jù)交互的很理想的方式。

主要提示:

JSONP 是構(gòu)建 mashup 的強(qiáng)大技術(shù),但不幸的是,它并不是所有跨域通信需求的萬(wàn)靈藥。它有一些缺陷,在提交開(kāi)發(fā)資源之前必須認(rèn)真考慮它們。

第一,也是最重要的一點(diǎn),沒(méi)有關(guān)于 JSONP 調(diào)用的錯(cuò)誤處理。如果動(dòng)態(tài)腳本插入有效,就執(zhí)行調(diào)用;如果無(wú)效,就靜默失敗。失敗是沒(méi)有任何提示的。例如,不能從服務(wù)器捕捉到 404 錯(cuò)誤,也不能取消或重新開(kāi)始請(qǐng)求。不過(guò),等待一段時(shí)間還沒(méi)有響應(yīng)的話,就不用理它了。(未來(lái)的 jQuery 版本可能有終止 JSONP 請(qǐng)求的特性)。

JSONP 的另一個(gè)主要缺陷是被不信任的服務(wù)使用時(shí)會(huì)很危險(xiǎn)。因?yàn)?JSONP 服務(wù)返回打包在函數(shù)調(diào)用中的 JSON 響應(yīng),而函數(shù)調(diào)用是由瀏覽器執(zhí)行的,這使宿主 Web 應(yīng)用程序更容易受到各類(lèi)攻擊。如果打算使用 JSONP 服務(wù),了解它能造成的威脅非常重要。

以上所述是小編給大家介紹的AJAX跨域請(qǐng)求JSONP獲取JSON數(shù)據(jù)的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • jQuery使用JSONP實(shí)現(xiàn)跨域獲取數(shù)據(jù)的三種方法詳解
  • 通過(guò)jsonp獲取json數(shù)據(jù)實(shí)現(xiàn)AJAX跨域請(qǐng)求
  • JavaScript用JSONP跨域請(qǐng)求數(shù)據(jù)實(shí)例詳解
  • 基于Jquery的跨域傳輸數(shù)據(jù)(JSONP)
  • AJAX跨域請(qǐng)求之JSONP獲取JSON數(shù)據(jù)
  • 使用jsonp實(shí)現(xiàn)跨域獲取數(shù)據(jù)實(shí)例講解
  • AngularJS實(shí)現(xiàn)的JSONP跨域訪問(wèn)數(shù)據(jù)傳輸功能詳解
  • Ajax的jsonp方式跨域獲取數(shù)據(jù)的簡(jiǎn)單實(shí)例
  • jsonp跨域請(qǐng)求數(shù)據(jù)實(shí)現(xiàn)手機(jī)號(hào)碼查詢實(shí)例分析
  • jsonp跨域獲取數(shù)據(jù)的基礎(chǔ)教程

標(biāo)簽:營(yíng)口 本溪 內(nèi)江 四川 銅川 益陽(yáng) 玉樹(shù) 遼寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《AJAX跨域請(qǐng)求JSONP獲取JSON數(shù)據(jù)的實(shí)例代碼》,本文關(guān)鍵詞  AJAX,跨域,請(qǐng)求,JSONP,獲取,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《AJAX跨域請(qǐng)求JSONP獲取JSON數(shù)據(jù)的實(shí)例代碼》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于AJAX跨域請(qǐng)求JSONP獲取JSON數(shù)據(jù)的實(shí)例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    8x福利精品第一导航| 99re视频这里只有精品| 亚洲国产精品一区二区www在线| 久久婷婷综合激情| 精品捆绑美女sm三区| 欧美三级视频在线| 欧美影片第一页| 欧美精品久久天天躁| 欧美一区中文字幕| 精品国产乱码久久久久久闺蜜| 日韩午夜激情免费电影| 欧美tickling挠脚心丨vk| 欧美成人video| 中文文精品字幕一区二区| 中文字幕在线观看不卡视频| 亚洲视频香蕉人妖| 亚洲国产精品综合小说图片区| 亚洲午夜久久久久| 日本中文一区二区三区| 国精品**一区二区三区在线蜜桃| 国产麻豆视频一区二区| 不卡的av在线播放| 欧美调教femdomvk| 精品国产免费人成在线观看| 亚洲欧洲av在线| 日韩精品视频网站| 国产一区二区精品在线观看| 91视频观看视频| 欧美一级精品在线| 亚洲色图制服丝袜| 免费成人在线网站| 成人性生交大片免费看在线播放| 欧美性大战xxxxx久久久| 2020国产精品自拍| 亚洲午夜羞羞片| 国产精品影视天天线| 在线视频观看一区| 久久精品视频免费| 婷婷夜色潮精品综合在线| 国产精品一级片在线观看| 91官网在线免费观看| 久久久久久久久久久电影| 亚洲最大的成人av| 国内精品视频一区二区三区八戒| 色婷婷国产精品| 欧美精品一区二区在线播放| 亚洲人成小说网站色在线| 久久精品国产999大香线蕉| 色88888久久久久久影院野外 | 欧美一级xxx| 亚洲精品视频免费观看| 国产91在线看| 精品国精品国产| 亚洲成a人片综合在线| 91视频精品在这里| 国产午夜精品一区二区三区四区| 五月激情丁香一区二区三区| 99久久免费视频.com| 国产校园另类小说区| 久久精品免费观看| 欧美美女激情18p| 亚洲一区二区视频在线观看| 成人福利电影精品一区二区在线观看| 欧美久久一二三四区| 亚洲综合一二区| 色综合天天性综合| 亚洲视频一二区| 97精品国产露脸对白| 国产精品入口麻豆原神| 国产福利91精品| 国产清纯在线一区二区www| 久久97超碰色| 久久精品一区二区三区四区| 国产综合色在线视频区| 精品国产乱码久久久久久浪潮 | 国产精品欧美精品| 国产ts人妖一区二区| 久久九九久精品国产免费直播| 国产精品一级片| 久久久不卡影院| 国产精品2024| 国产精品伦理在线| 成人av片在线观看| 综合色天天鬼久久鬼色| 色8久久人人97超碰香蕉987| 亚洲第一搞黄网站| 欧美一卡二卡三卡四卡| 久久精品国产久精国产| 国产日韩一级二级三级| 99久久伊人精品| 亚洲国产精品一区二区尤物区| 911精品国产一区二区在线| 蜜臀av一级做a爰片久久| 久久久久久久精| 91麻豆自制传媒国产之光| 亚洲成人精品影院| 精品国产网站在线观看| 99re这里只有精品6| 香港成人在线视频| 久久久久久久久久久久电影 | 91网站黄www| 日韩avvvv在线播放| 久久久久九九视频| 色94色欧美sute亚洲线路一ni| 天天综合日日夜夜精品| 国产欧美精品在线观看| 色噜噜狠狠成人中文综合| 蜜桃av一区二区三区| 国产精品进线69影院| 欧美二区乱c少妇| 成人国产精品免费| 亚洲va韩国va欧美va精品| 欧美精品一区二区三区久久久| 91久久线看在观草草青青| 激情伊人五月天久久综合| 亚洲国产一区二区三区| 久久精品亚洲精品国产欧美| 欧美天堂一区二区三区| 成人性生交大片免费看视频在线| 婷婷综合另类小说色区| 亚洲欧美日韩国产手机在线 | 26uuu色噜噜精品一区二区| 色综合天天视频在线观看| 国产在线视频一区二区三区| 亚洲国产欧美在线| 中文字幕亚洲成人| 国产三级精品在线| 91精品国产色综合久久不卡蜜臀 | 成人精品免费视频| 国内偷窥港台综合视频在线播放| 亚洲午夜成aⅴ人片| 国产一区二区精品久久99| 制服丝袜中文字幕一区| 97精品久久久午夜一区二区三区| 国产在线不卡视频| 老司机一区二区| 婷婷丁香久久五月婷婷| 亚洲视频一区在线| 亚洲日本乱码在线观看| 国产日韩综合av| 久久久91精品国产一区二区三区| 日韩女优av电影在线观看| 欧美日韩日日夜夜| 欧美日韩视频不卡| 在线欧美日韩精品| 欧美三级在线视频| 欧美日韩精品一区二区天天拍小说| 91亚洲资源网| 91亚洲永久精品| 在线免费精品视频| 在线免费精品视频| 99久久精品一区二区| 国产高清亚洲一区| 国内精品久久久久影院色| 日本中文字幕一区二区视频 | 国产精品456| 日本三级韩国三级欧美三级| 日韩激情视频在线观看| 亚洲精品成a人| 精品国一区二区三区| 欧美日韩高清在线播放| 色综合天天狠狠| 91麻豆国产自产在线观看| 成人黄色小视频| 91亚洲国产成人精品一区二三| 成人av午夜电影| 高清在线成人网| 91首页免费视频| av在线一区二区| 成人免费毛片嘿嘿连载视频| 国产一区二区视频在线| 国产精品一区三区| 成人午夜视频在线观看| 国产白丝网站精品污在线入口| 国产一区二区美女| 成人免费观看av| 欧美日韩一区二区欧美激情| 欧美成人一区二区三区片免费| 国产欧美日韩亚州综合| 亚洲欧洲成人自拍| 麻豆精品视频在线观看免费| 成人一区在线观看| 日韩一区二区三区电影在线观看 | 国产拍欧美日韩视频二区| 亚洲精品视频在线观看网站| 免费观看91视频大全| 99免费精品视频| 亚洲精品在线电影| 亚洲狠狠丁香婷婷综合久久久| 久久99精品久久久久久久久久久久| 韩国成人精品a∨在线观看| 不卡一区二区在线| 欧美成人video| 亚洲女人****多毛耸耸8| 亚洲国产日韩综合久久精品| 国产一区二区福利视频| 色综合久久久久综合99| 欧美精品v日韩精品v韩国精品v| 久久综合狠狠综合久久综合88 | 久久se精品一区二区|