亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

jsonp簡單探究

2024-04-27 15:18:19
字體:
來源:轉載
供稿:網友

先說說JSONP是怎么產生的1: 其實網上關于JSONP的講解有很多,但卻千篇一律,而且云里霧里,對于很多剛接觸的人來講理解起來有些困難,小可不才,試著用自己的方式來闡釋一下這個問題,看看是否有幫助。

一個眾所周知的問題,Ajax直接請求普通文件存在跨域無權限訪問的問題,甭管你是靜態頁面、動態網頁、web服務、WCF,只要是跨域請求,一律不準;不過我們又發現,Web頁面上調用js文件時則不受是否跨域的影響(不僅如此,我們還發現凡是擁有”src”這個屬性的標簽都擁有跨域的能力,比如<script>、<img>、<iframe>);于是可以判斷,當前階段如果想通過純web端(ActiveX控件、服務端代理、屬于未來的HTML5之Websocket等方式不算)跨域訪問數據就只有一種可能,那就是在遠程服務器上設法把數據裝進js格式的文件里,供客戶端調用和進一步處理;恰巧我們已經知道有一種叫做JSON的純字符數據格式可以簡潔的描述復雜數據,更妙的是JSON還被js原生支持,所以在客戶端幾乎可以隨心所欲的處理這種格式的數據;這樣子解決方案就呼之欲出了,web客戶端通過與調用腳本一模一樣的方式,來調用跨域服務器上動態生成的js格式文件(一般以JSON為后綴),顯而易見,服務器之所以要動態生成JSON文件,目的就在于把客戶端需要的數據裝入進去??蛻舳嗽趯SON文件調用成功之后,也就獲得了自己所需的數據,剩下的就是按照自己需求進行處理和展現了,這種獲取遠程數據的方式看起來非常像AJAX,但其實并不一樣。為了便于客戶端使用數據,逐漸形成了一種非正式傳輸協議,人們把它稱作JSONP,該協議的一個要點就是允許用戶傳遞一個callback參數給服務端,然后服務端返回數據時會將這個callback參數作為函數名來包裹住JSON數據,這樣客戶端就可以隨意定制自己的函數來自動處理返回數據了。

JSONP的客戶端具體實現(jquery版):

使用jsonp來獲取數據時,使用GET或者POST方法都是可以的,但是dataType必須要填寫jsonp,并且需要填寫jsonp和jsonpCallback兩個屬性,如:

$.ajax({ type: "POST", async: false, url: "http://www.someone.com/a/b", data:{ p: 1609 }, dataType: "jsonp", jsonp: "callback", jsonpCallback:"anyThing", success: function(data){ console.log(data.commonData); alert('票價: ' + data.jsonPData.PRice + ' 元,數量: ' + data.jsonPData.tickets + ' 個。'); }, error: function(){ alert('fail'); }});

其中需要注意的是,jsonp屬性在最后發出請求時會變成如下格式

http://www.someone.com/a/b?callback=anyThing&_=1486627742030

所以java后端會取到callback的值,在返回時會拼裝成如下格式數據返回,返回一個名為angThing的函數:

angThing({ "commonData": {...}, "jsonPData": { "price": 213.1, "tickets": 41 }})

jquery會將方法中的數據剝離并返回到success回調方法中,供頁面使用。

JSONP的服務端實現(struts2): 首先,在action中獲取有客戶端傳來的數據,如data中的參數和callback的值

private String callback;public String find() { CommonData commonData = new CommonData(); JsonPTemp jsonPData = new JsonPTemp(new BigDecimal(213.1), new BigDecimal(41)); setJsonp(new JsonP(commonData, jsonPData)); return SUCCESS;}

Struts2配置

<package name="a" namespace="/a" extends="default"><action name="b" class="com.someone.www.action.Action" method="find"> <result name="success" type="json"> <param name="callbackParameter">callback</param> <param name="root">jsonp</param> </result></action></package>

注意:result中callbackParameter的值一定要與action中聲明的變量名一致,否則的話請求會報錯。

其實,struts2會把callback的值獲取到,然后聲明稱一個方法供客戶端使用,里面包裹的值是在下面時候填寫進去的

setJsonp(new JsonP(commonData, jsonPData));

struts2會把數據先轉化為json,然后放入生成的方法中后,返回。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品中文字幕在线观看| 国产视频精品免费播放| 亚洲性视频网站| 欧美午夜激情小视频| 亚洲美女久久久| 亚洲精品大尺度| 亚洲图片欧洲图片av| 欧美色另类天堂2015| 国产精品成人免费电影| 国产欧美va欧美va香蕉在| 国产精品久久久久av| 久久亚洲一区二区三区四区五区高| 亚洲欧美日韩精品久久亚洲区| 亚洲国产成人精品电影| 8090理伦午夜在线电影| 久热国产精品视频| 国产精品美女www爽爽爽视频| 日韩成人av网址| 欧美国产视频日韩| 欧美—级高清免费播放| 国产欧美日韩丝袜精品一区| 欧美视频在线观看 亚洲欧| 欧美精品一区二区免费| 欧美自拍视频在线| 97在线精品国自产拍中文| 久久人人97超碰精品888| 久久久91精品国产一区不卡| 久久久久久一区二区三区| 久久噜噜噜精品国产亚洲综合| 国产欧美一区二区白浆黑人| 亚洲摸下面视频| 国产精品视频999| 国产精品久久色| 一本色道久久88精品综合| 中国人与牲禽动交精品| 欧美日本啪啪无遮挡网站| 国产精品黄页免费高清在线观看| 久热精品视频在线观看一区| 91精品啪aⅴ在线观看国产| 久久成年人视频| 久久福利网址导航| 亚洲色图日韩av| 日韩女在线观看| 高清日韩电视剧大全免费播放在线观看| 欧美亚洲一区在线| 欧美日韩亚洲视频| 中文字幕久久久av一区| 日韩精品在线视频| 97超视频免费观看| 国产欧美va欧美va香蕉在| 亚洲精品久久久久久久久久久久| 国产v综合ⅴ日韩v欧美大片| 亚洲国产欧美日韩精品| 亚洲欧美日本精品| 欧美自拍视频在线观看| 国产成人a亚洲精品| 日本成人黄色片| 亚洲欧美色婷婷| 午夜精品久久久久久久白皮肤| 国产亚洲一区精品| 日本精品在线视频| 国产一区二区黑人欧美xxxx| 国产精品一区二区久久国产| 欧美激情按摩在线| 亚洲free性xxxx护士hd| 精品毛片三在线观看| 国产精品久久久亚洲| 成人欧美一区二区三区黑人| 日韩久久免费电影| 日韩av大片免费看| 538国产精品视频一区二区| 国产69久久精品成人| 成人久久一区二区三区| 欧美激情一区二区三区久久久| 在线视频一区二区| 一二美女精品欧洲| 2020欧美日韩在线视频| 久久69精品久久久久久久电影好| 91亚洲国产精品| 国产精品成久久久久三级| 欧美日本高清视频| 国产一区二区av| 91亚洲人电影| 久久久免费观看| 国产精品久久激情| 全球成人中文在线| 97婷婷涩涩精品一区| 91影院在线免费观看视频| 国产精品成人一区| 精品亚洲一区二区三区四区五区| 久久精品男人天堂| 97精品伊人久久久大香线蕉| 精品国产乱码久久久久酒店| 久久精品99国产精品酒店日本| 久久中国妇女中文字幕| 日本欧美国产在线| 中文字幕国产亚洲| 91精品国产91久久久久| 欧美日韩中文字幕日韩欧美| 久久成人av网站| 欧美国产日韩精品| 日韩精品免费综合视频在线播放| 亚洲国产精彩中文乱码av在线播放| 久久久免费高清电视剧观看| 久久久之久亚州精品露出| 亚洲午夜av电影| 中文字幕av一区中文字幕天堂| 国产精品视频一区二区三区四| 中日韩美女免费视频网址在线观看| 7m精品福利视频导航| 亚洲精品丝袜日韩| 日韩国产在线看| 国产精品久久久久久久一区探花| 欧美综合国产精品久久丁香| 精品动漫一区二区三区| 欧美性69xxxx肥| 亚州欧美日韩中文视频| 黑人巨大精品欧美一区二区| 国产精品久久久久久av福利| 久久久在线视频| 欧美成人精品h版在线观看| 成人黄色网免费| 国产日韩av高清| 久久久成人精品| 亚洲福利视频免费观看| 97欧美精品一区二区三区| 欧美成年人视频网站| 97在线免费观看| 久久精品男人天堂| 国产精品天天狠天天看| 久久夜精品va视频免费观看| 91综合免费在线| 高清欧美性猛交xxxx| 欧美黑人性猛交| 国产精品一区二区三区久久久| 欧美大片在线影院| 精品欧美aⅴ在线网站| 91久久国产精品91久久性色| 国自在线精品视频| 欧美一级片久久久久久久| 日韩有码在线播放| 久久精品视频播放| 久久精品男人天堂| 亚洲自拍小视频免费观看| 九九精品视频在线| 欧美性猛交99久久久久99按摩| 成人黄色在线播放| 日韩视频一区在线| 精品久久久久久久久久久久久| 亚洲色图美腿丝袜| 精品久久久久久中文字幕大豆网| 国产精品久久久久999| 国产精品美女视频网站| 亚洲欧美日韩久久久久久| 亚洲一区av在线播放| 欧美一级片久久久久久久| 性夜试看影院91社区| 国产日韩欧美成人| 情事1991在线| 久久综合伊人77777尤物| 日韩中文字幕第一页| 久久国产精品偷| 亚洲淫片在线视频| 97免费中文视频在线观看|