成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 淺析json與jsonp區(qū)別及通過ajax獲得json數(shù)據(jù)后格式的轉(zhuǎn)換

淺析json與jsonp區(qū)別及通過ajax獲得json數(shù)據(jù)后格式的轉(zhuǎn)換

熱門標(biāo)簽:硅語電話機器人公司 ai機器人電銷資源 越南河內(nèi)地圖標(biāo)注 地圖標(biāo)注項目怎么樣 個人怎樣在百度地圖標(biāo)注地名 云呼外撥網(wǎng)絡(luò)電話系統(tǒng) 機器人電銷騙局揭秘 騰訊地圖標(biāo)注位置能用多久 超級大富翁地圖標(biāo)注

 有關(guān)json與jsonp的區(qū)別(json才是目的,jsonp只是手段)介紹如下所示:

一言以蔽之,json返回的是一串?dāng)?shù)據(jù);而jsonp返回的是腳本代碼(包含一個函數(shù)調(diào)用);

JSON其實就是JavaScript中的一個對象,跟var obj={}在質(zhì)上完全一樣,只是在量上可以無限擴展。簡單地講,json其實就是JavaScript中的對象(Object)和數(shù)組(Array,其實也是對象)這倆好基友在那兒你嵌我我嵌你地套上n多層,以此模擬出許多復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。

json易于人閱讀和編寫,也易于機器解析和生成,相對網(wǎng)絡(luò)傳輸速率較高,功能型網(wǎng)站前后端往往要頻繁大量交換數(shù)據(jù),而json憑借其強大的表現(xiàn)力和高顏值漸漸地成為理想的前后端數(shù)據(jù)交換語言。那xml前輩呢,我覺得應(yīng)該會像微軟的xp那樣功成身退。

同源(不懂同源策略的童鞋請自行百度)下的前后端數(shù)據(jù)交換格式確定使用json了,那么問題來了,如果我想獲取別人網(wǎng)站上提供的數(shù)據(jù)腫么做到呢?也就是跨域讀取數(shù)據(jù)問題(不要鉆牛角說你不需要讀取其他網(wǎng)站的數(shù)據(jù),相信我,你早晚得需要),json行不行呢?答案是No Way,為什么呢,因為json只是普通的文本格式,能讓你這樣就輕松拿到那服務(wù)端就沒有任何安全和保密性可言了,這樣的話互聯(lián)網(wǎng)世界非亂套不可,這個問題那些牛X的規(guī)范制定者早就想到了,所以使用了同源策略來限制文件獲取。最后的結(jié)果就是只有像img、script、iframe這類可以指定src屬性的標(biāo)簽有跨域獲取別人網(wǎng)站上數(shù)據(jù)(圖片,腳本,源文件其實都是數(shù)據(jù))的能力。比如:

!--京東商品圖片-->
img src="http://img30.360buyimg.com/jgsq-productsoa/jfs/t2407/323/1635505465/47386/f2d89d88/56615e00N7a475ee6.jpg" />
!--百度CDN-->
script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">/script> 

看來直接獲取json是行不通了,那有沒有其他方法能拿到數(shù)據(jù)呢?于是乎jsonp就這樣被聰明的開發(fā)者給發(fā)現(xiàn)了,為什么說是發(fā)現(xiàn)而不是發(fā)明呢,因為并沒有涉及到任何新技術(shù),就像發(fā)現(xiàn)ajax一樣。

jsonp原理是這樣的,網(wǎng)站A需要獲取網(wǎng)站B的數(shù)據(jù),網(wǎng)站B說我給你們一個方法,【1. 你們使用script src="http://www.B.com/open.js">/script>標(biāo)簽先獲取到open.js文件(網(wǎng)站B的責(zé)任),這里邊有你們需要的數(shù)據(jù)。2. 你們獲取數(shù)據(jù)后處理數(shù)據(jù)(總得處理數(shù)據(jù)吧)的方法名必須命名為foo(數(shù)據(jù)請求者的責(zé)任和義務(wù))】,這里相當(dāng)于B網(wǎng)站和請求獲取數(shù)據(jù)者之間建立了一個協(xié)議,要求請求者務(wù)必按照規(guī)則辦事,如果請求者不能同時遵守上面兩條就不能按預(yù)期獲取數(shù)據(jù)。額..,這也算相當(dāng)于建立了一個潛規(guī)則吧

open.js內(nèi)容

foo({"name":"B","age":23});  //為什么不直接寫成json數(shù)據(jù){"name":"B","age":23}呢,原因很簡單,在js文件總得合乎js語法吧
//這也是為什么協(xié)議中明確規(guī)定處理數(shù)據(jù)的方法名必須命名為foo,因為B網(wǎng)站是在假定請求者的腳本中已經(jīng)定義了數(shù)據(jù)處理方法foo的情況下返回數(shù)據(jù);
//不然就會報foo is not defined錯誤

網(wǎng)站A腳本須有

function foo(data){
console.log(data);
//ToDo.. 
} 

啊!雖然拐了個彎,但數(shù)據(jù)總算得到了,網(wǎng)站A,網(wǎng)站B都非常高興,那么問題又來了,網(wǎng)站C說也需要獲取網(wǎng)站B的數(shù)據(jù),網(wǎng)站B把協(xié)議甩給它,網(wǎng)站C拿過來一看,草泥馬啊,foo這個名字已經(jīng)在自己的腳本文件的6868行用過了,而且已經(jīng)使用在腳本的各個角落,批量替換會導(dǎo)致很多潛在bug啊,網(wǎng)站B情急之下決定把foo改成fool,網(wǎng)站A立馬蹦起來,因為自己的網(wǎng)站已經(jīng)在很多地方使用foo引用了數(shù)據(jù)。

為了避免上面情況發(fā)生,那些牛X哄哄的開發(fā)者使用了動態(tài)生成js文件的方法,php版本如下:

open.php

?php
header('Content-type: application/javascript');
$jsonCallback = htmlspecialchars($_REQUEST ['callback']); //獲取請求者自定義的回調(diào)函數(shù)名
$jsonData ='{"name":"B","age":23}'; //待返回的json數(shù)據(jù)
echo $jsonCallback . "(" . $jsonData . ")"; //輸出jsonp格式的數(shù)據(jù),即一行函數(shù)調(diào)用語句
?> 

額 ..,至于php為什么能返回js格式文件,自行百度。

于是網(wǎng)站A用script src="http://www.B.com/open.php?callback=foo">/script>來請求數(shù)據(jù),不需要修改任何變量,返回給A的腳本文件內(nèi)容是:

foo({"name":"B","age":23}); //所謂的jsonp,就是一句函數(shù)調(diào)用,數(shù)據(jù)都被包裹傳遞到參數(shù)中了,千萬別穿個馬甲就不認(rèn)識了 
網(wǎng)站C就用script src="http://www.B.com/open.php?callback=blah">/script>來請求數(shù)據(jù),返回給C的腳本文件內(nèi)容是:
blah({"name":"B","age":23}); 
網(wǎng)站N就用script src="http://www.B.com/open.php?callback=what">/script>來請求數(shù)據(jù),返回給N的腳本文件內(nèi)容是:
what({"name":"B","age":23}); 

Problem Solved,大家都取到了期望的數(shù)據(jù),并且避免了命名沖突。

jsonp全名叫做json with padding,很形象,就是把json對象用符合js語法的形式包裹起來以使其它網(wǎng)站可以請求得到,也就是將json數(shù)據(jù)封裝成js文件;

json是理想的數(shù)據(jù)交換格式,但沒辦法跨域直接獲取,于是就將json包裹(padding)在一個合法的js語句中作為js文件傳過去。這就是json和jsonp的區(qū)別,json是想要的東西,jsonp是達到這個目的而普遍采用的一種方法,當(dāng)然最終獲得和處理的還是json。所以說json是目的,jsonp只是手段。json總會用到,而jsonp只有在跨域獲取數(shù)據(jù)才會用到。

理解了json和jsonp的區(qū)別之后,其實ajax里的跨域獲取數(shù)據(jù)就很好理解和實現(xiàn)了,同源時候并沒有什么特別的,直接取就行,跨域時候需要拐個彎來達到目的。

附上jquery中ajax請求json數(shù)據(jù)實例:

(同源):

$.ajax({
url:"persons.json",
success:function(data){
    console.log(data);
     //ToDo..
  }
}); 

(跨域):

$.ajax({
url:"http://www.B.com/open.php?callback=?",
dataType:"jsonp",
success:function(data){
console.log(data);
//ToDo..
}
}); 

jquery已把jsonp封裝進ajax,很合理,因為畢竟絕大多數(shù)的jsonp請求都是ajax,關(guān)于jquery的ajax具體用法請自行百度,另外要注意的一點就是不同的網(wǎng)站提供的數(shù)據(jù)接口的$_REQUEST ['callback']中不一定絕對是callback也可能是cb,cbk等,具體使用時務(wù)必閱讀服務(wù)端提供的有關(guān)接口使用的詳細(xì)文檔。

下面給大家介紹下由“夜未央0906”寫的通過ajax獲得json數(shù)據(jù)后格式的轉(zhuǎn)換

在有些情況下獲取到的json數(shù)據(jù)可能是string類型的,需要把其格式化為json對象才方便解析。

a)原生js通過ajax獲取到的json

  此時返回的數(shù)據(jù)默認(rèn)是string型的,所以需要用eval()函數(shù)將其轉(zhuǎn)化為json對象。需要注意函數(shù)內(nèi)字符串的格式:eval(“(” + data+“)”),因為返回的string是在{}里面的,eval會將大括號識別為js代碼塊開始和結(jié)束的標(biāo)志,所以必須加上(),將其強制轉(zhuǎn)化為對象來處理。

b)jquery獲取

  1:通過ajax()異步請求并把type設(shè)置為json,返回的就是json對象。

  2:通過用與ajax()等價的$.getJSON(url,data1,function(data2,status,xhr){//......})方法獲取的也是json對象。其中data1為連同請求發(fā)送的數(shù)據(jù),data2為服務(wù)器返回的數(shù)據(jù)即json對象。

您可能感興趣的文章:
  • SpringMVC多個文件上傳及上傳后立即顯示圖片功能
  • SpringMVC框架實現(xiàn)上傳圖片的示例代碼
  • SpringMVC中MultipartFile上傳獲取圖片的寬度和高度詳解
  • SpringMVC上傳圖片與訪問
  • php將從數(shù)據(jù)庫中獲得的數(shù)據(jù)轉(zhuǎn)換成json格式并輸出的方法
  • JAVA對象JSON數(shù)據(jù)互相轉(zhuǎn)換的四種常見情況
  • JS對象與JSON格式數(shù)據(jù)相互轉(zhuǎn)換
  • springmvc圖片上傳及json數(shù)據(jù)轉(zhuǎn)換過程詳解

標(biāo)簽:鄭州 遼源 海南 邢臺 舟山 林芝 內(nèi)蒙古 洛陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺析json與jsonp區(qū)別及通過ajax獲得json數(shù)據(jù)后格式的轉(zhuǎn)換》,本文關(guān)鍵詞  淺析,json,與,jsonp,區(qū)別,及,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺析json與jsonp區(qū)別及通過ajax獲得json數(shù)據(jù)后格式的轉(zhuǎn)換》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺析json與jsonp區(qū)別及通過ajax獲得json數(shù)據(jù)后格式的轉(zhuǎn)換的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    中文字幕伦理免费在线视频| 欧美日韩国产小视频在线观看| 一精品久久久| 亚洲欧美日韩一二三区| 欧洲成人综合网| 精品人妻一区二区三区香蕉| 日韩欧美中文字幕精品| 日韩欧美一区二区三区在线视频| 黄色在线免费看| 成人精品国产免费网站| 日本丰满少妇黄大片在线观看| 另类小说综合网| www91在线观看| 毛片在线视频播放| 免费在线观看毛片网站| 国产丝袜精品第一页| 日本sm极度另类视频| 欧美高清性xxxxhd| 成人午夜影视| 国产精品欧美久久久久一区二区| 麻豆国产尤物av尤物在线观看| 亚洲精品高清无码视频| 久久久久久久久久电影| 日韩精品久久理论片| 亚洲电影中文字幕| 久久先锋影音av鲁色资源| 色综合一本到久久亚洲91| 一区二区三区毛片免费| 国语自产偷拍精品视频偷| 黄色国产一级视频| 亚洲国产一区在线观看| 7799国产精品久久久久99| 中文字幕在线视频观看| 精品在线播放视频| 超级黄的软件| 日韩精品视频一区二区| 国产日韩欧美第一页| 骚虎黄色影院| 国产成人aa在线观看网站站| 亚洲国产精品久久一线不卡| 性xxxfllreexxx少妇| 青青草视频在线免费直播| 韩日精品一区二区| 欧洲美女免费图片一区| 久国内精品在线| 午夜精品久久久久久久久久| 91老司机福利 在线| 国产日本在线| 中文字幕第31页| 欧美亚洲国产精品久久| 国产丝袜视频一区| 日韩毛片免费看| 国产精品电影网| 亚洲第一导航| 青青草原一区二区| xxxxx.日韩| 91视频免费播放| av大片在线免费观看| 欧美一级免费看| 91麻豆精品成人一区二区| 国产精品天天看天天狠| 中文字幕天堂在线| 精品这里只有精品| 精品捆绑美女sm三区| 国产女主播在线写真| 色久综合一二码| 韩国精品主播一区二区在线观看| 免费日韩精品中文字幕视频在线| 韩国av一区二区| 丁香激情视频| 亚洲精品一区二区在线看| 亚洲视频小说| 国户精品久久久久久久久久久不卡| 成人免费看视频| 浮妇高潮喷白浆视频| 欧美日韩一区二区三区不卡视频| 亚洲在线观看免费| 男人天堂网在线视频| 欧美日韩国产一中文字不卡| 久久精品国产屋| 黄色免费网站视频| 成人无号精品一区二区三区| 久久久久久蜜桃一区二区| 亚洲热app| 天天草天天操| 无码人妻精品一区二区三应用大全| 成人av资源站| 男人天堂手机在线观看| 2020亚洲男人天堂| 99精品国产在热久久| 欧美激情在线视频二区| 欧美电影免费看| 99精品国产99久久久久久白柏| 亚洲在线黄色| 亚洲色图色老头| 日韩精品亚洲专区在线观看| 中文字幕人妻丝袜乱一区三区| 麻豆入口视频在线观看| 艳妇乳肉亭妇荡乳av| 超碰人人人人人人人| 黑人巨大精品欧美一区二区免费| 亚州国产精品视频| 性欧美xxx69hd高清| 成人av电影在线播放| 亚洲欧美日韩国产综合| 亚洲精品一区二区在线播放∴| 在线激情免费视频| 免费国产自久久久久三四区久久| 伊人色综合一区二区三区影院视频| 啪一啪鲁一鲁2019在线视频| 97不卡在线视频| 日韩在线观看免费av| 亚洲一区久久久| 亚洲欧美日韩精品永久在线| 久久精品99国产| 国产亚洲视频系列| 亚洲欧美日韩一区二区三区四区| 国产真实乱对白精彩久久| 久久中文精品| 国产精品高潮呻吟久久| 一区二区在线播放视频| 国产精品久久久亚洲第一牛牛| 欧美黑人性受xxxx喷水| 亚洲免费观看高清在线观看| 二区三区四区高清视频在线观看| 99视频只有精品| 欧美精品99久久久| 日韩av在线电影| 韩国美女久久| 欧美乱偷一区二区三区在线| 综合久久久久久久| 午夜性福利视频| 青青草国产成人av片免费| 免费精品视频最新在线| 成人在线免费看视频| 成人性生交大片免费| 欧美日韩国产黄色| 精品国产av 无码一区二区三区| 久久精品国产一区二区三区肥胖| 狂野欧美xxxx韩国少妇| 另类图片亚洲另类| 一本色道久久88综合亚洲精品ⅰ| 久久精品国产理论片免费| 国产高清一区二区| 青青草原成人| 欧美日产一区二区三区在线观看| 欧美日韩精品二区第二页| 国产精品自产拍在线观看| 91av视频免费观看| www.日本高清| 人妻av中文系列| 尤物视频免费在线观看| 在线播放av更多| 1区2区3区在线| 免费久久久久久久久| 无码人妻精品一区二区三区不卡| 日本一区二区在线视频| 中文字幕乱码av| 亚洲欧美日韩在线综合| 国产午夜手机精彩视频| 欧美大交乱xxxxbbbb| 国内精品模特av私拍在线观看| 国产一区二区三区在线观看免费| 欧美在线1区| 久久免费视频网站| 欧美极品jizzhd欧美仙踪林| 日韩精品一区二区三区四区| 国产欧美亚洲视频| 成人av电影在线观看| 精品久久久久一区二区国产| 成人观看免费视频| 原纱央莉成人av片| 欧美xxxx×黑人性爽| 中文乱码免费一区二区三区下载| **欧美日韩vr在线| 成人av一区二区三区在线观看| 国产熟妇搡bbbb搡bbbb| 日日av拍夜夜添久久免费| 国产精品露脸视频| 最新av免费看| 亚洲精华国产精华精华液网站| 少妇精品久久久久久久久久| 伊人电影在线观看| 久久精品亚洲欧美日韩精品中文字幕| 中文字幕成人网| 色综合天天爱| 国产九九在线视频| 91精品婷婷国产综合久久蝌蚪| а√中文在线8| 久久亚洲精华国产精华液| 亚洲黄色www网站| 成人在线国产精品| 亚洲国产岛国毛片在线| 91美女精品福利| 污污网站免费在线观看| 电影一区二区三| 岛国毛片在线播放| 中文字幕亚洲一区二区av在线| jizz老师| 一区精品在线观看| 欧美羞羞免费网站| 国产日韩欧美另类| 精品久久久影院| 宅男在线国产精品| 小泽玛利亚一区二区免费| 7777精品伊久久久大香线蕉语言| 久久综合之合合综合久久| 国产亚洲一区二区三区在线播放| 乳奴隷乳フ辱julia在线观看| 国外成人免费在线播放| 国产综合欧美在线看| 美女网站在线看| 国产麻豆综合| 黄色一级大片免费| 黄色污污视频软件| 粉嫩av亚洲一区二区图片| 日韩一级片免费| 黄色三级小视频| 亚洲一卡2卡三卡4卡2021四卡| 可以免费看污视频的网站在线| 亚洲精品一区二区三区不| 免费a级毛片永久免费| 九九九九热精品免费视频| 成人爽a毛片| 国产传媒视频在线| 丰满大乳奶做爰ⅹxx视频| 久久国产综合精品| 女同毛片一区二区三区| 亚洲v欧美v另类v综合v日韩v| 伊人网在线播放| 精品乱子伦一区二区三区| 日韩免费一区| 三年中国中文观看免费播放| 影音先锋欧美精品| 国模私拍一区二区国模曼安| 欧美日韩亚洲国产综合| 亚洲毛茸茸少妇高潮呻吟| 中文字幕日韩一区二区三区| 国产亚洲字幕| 久久这里只有精品视频首页| 一级 黄 色 片一| 波多野结衣二区三区| 福利社在线免费视频| 国风产精品一区二区| 日韩大片在线免费观看| 亚洲欧洲精品在线观看| 国产亚洲在线观看| 成人av网站在线观看| 成人在线网站| 91久久免费视频| 成人自拍偷拍| 国产一级不卡视频| 午夜精品久久久久久久蜜桃| 精品人妻一区二区三区浪潮在线| 久久99精品久久久久久久久久久久| 91美女福利视频高清| 成人福利在线| 亚洲va欧美va人人爽成人影院| 久久精品国产2020观看福利| 秋霞影院一区二区| 中文字幕在线观看网站| 久久精品视频免费看| 亚洲十八**毛片| 中文字幕第15页| 精品国产高清自在线一区二区三区| 亚洲精品无遮挡| 亚洲av成人精品一区二区三区| 亚洲一区二区av在线| 欧美黄色视屏| 国产成人影院| 国语自产精品视频在线看| 蜜臀精品一区二区三区在线观看| 精品久久久精品| 999国产精品视频| 久久一留热品黄| 成人免费网站在线观看| 加勒比在线一区二区三区观看| 最新真实国产在线视频| 热99re久久精品这里都是免费| 国产精品午夜一区二区三区| 丁香婷婷深情五月亚洲| 国产成人综合亚洲| 中文字幕第15页| 日韩精品影视| 久久精品伊人| 亚洲国产精品热久久| 最好看的2019年中文视频| 精品一区二区成人免费视频| 日本不卡视频一二三区| 天天干天天插天天操| 国产精品久久久久影院日本| 黄色网址三级| 亚洲第一男人av| 奇米777第四色| 欧美日韩视频免费在线观看| 国产一区二区三区精品在线观看| 国产在线精品观看| 国产一区二区三区在线观看| 久久久av毛片精品| 黑人巨大精品欧美一区二区一视频| 毛片免费看不卡网站| 亚洲欧美一级| 色婷婷综合久久久久中文一区二区| 日日狠狠久久偷偷综合色| 欧美精品乱人伦久久久久久| 国内精品区一区二区三| 精品国产自在精品国产浪潮| 美国黄色特级片| 亚洲黄色片视频| 久久三级毛片| 亚洲国产精品悠悠久久琪琪| 黄色网页网址在线免费| 拔插拔插海外华人免费| 亚洲成av人在线观看| 91美女片黄在线观看游戏| 天天摸在线视频| 国产免费一区| 国产精品视频在线观看| 性欧美精品男男| 国产精品久久久久无码av色戒| 日韩精品一区二区三区老鸭窝| 天堂免费在线视频| 97影视大全免费追剧大全在线观看| 黄色综合网站| 免费看又黄又无码的网站| 久久久国产精品久久久| 亚洲影院在线观看| 亚洲精品久久久一区二区三区|