JSONP之我見
JavaScript初學(xué),一點(diǎn)自己的理解,有不當(dāng)之處請(qǐng)大家指正~
JSONP:
本地html文件要獲取xxx網(wǎng)站(跨域)數(shù)據(jù)時(shí)使用的方法。
跨域問(wèn)題:
外部服務(wù)器的數(shù)據(jù)只能用外部服務(wù)器中的js訪問(wèn),本地js無(wú)法用XMLHttpRequest()訪問(wèn)。
外部服務(wù)器中的Web服務(wù)提供JSON數(shù)據(jù),比如在http://gumball.wickedlysmart.com/中,數(shù)據(jù)包含在函數(shù)updateSales中作為參數(shù),現(xiàn)在要在本地html中訪問(wèn)外部服務(wù)器中的JSON數(shù)據(jù)該怎么辦呢?
1, 查看Web服務(wù)文檔,明確服務(wù)實(shí)際使用的參數(shù)名(本例只有一個(gè)參數(shù)即一個(gè)對(duì)象數(shù)組);
2, 在url中指定一個(gè)回調(diào)函數(shù),http://gumball.wickedlysmart.com/?callback=updateSales,用來(lái)指定Web服務(wù)中訪問(wèn)JSON數(shù)據(jù)的函數(shù)名;
3, 在本地js文件中使用剛才定義的函數(shù)名創(chuàng)建函數(shù)updateSales(對(duì)象),編寫處理得到外部JSON數(shù)據(jù)的方法;
4, 在html文件中的<body>標(biāo)簽下使用<script>標(biāo)簽鏈接到外部Web服務(wù),url為2中的那個(gè)路徑。
總結(jié):
JSONP目的在于提供給本地html一個(gè)函數(shù)接口(本地html可通過(guò)在url后方加入?callback=functionName的方法指定函數(shù)名),為了確保數(shù)據(jù)訪問(wèn)的安全,服務(wù)器將安全的數(shù)據(jù)放在回調(diào)函數(shù)的參數(shù)中,函數(shù)內(nèi)部的參數(shù)就是服務(wù)器提供給本地的數(shù)據(jù),至于怎么使用這些數(shù)據(jù)就要在本地的js中定義這個(gè)callback函數(shù)了。
注意:本地使用JSONP請(qǐng)求訪問(wèn)Web服務(wù),可能會(huì)獲取不安全的Js代碼,所以要確保信任這個(gè)Web服務(wù)。
JSONP與XMLHttpRequest:
XMLHttpRequest用于開發(fā)內(nèi)部Web服務(wù),內(nèi)部訪問(wèn)內(nèi)部,同域訪問(wèn)會(huì)更加簡(jiǎn)便。
訪問(wèn)外部數(shù)據(jù)時(shí)(跨域訪問(wèn))就要使用JSONP。
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡,能夠?qū)Υ蠹覍W(xué)習(xí)jsonp有所幫助。
- javascript XMLHttpRequest對(duì)象全面剖析
- jquery下利用jsonp跨域訪問(wèn)實(shí)現(xiàn)方法
- js判斷IE6/IE7/FF的代碼[XMLHttpRequest]
- 跨域請(qǐng)求之jQuery的ajax jsonp的使用解惑
- jquery ajax學(xué)習(xí)筆記2 使用XMLHttpRequest對(duì)象的responseXML
- AJAX(XMLHttpRequest.status)狀態(tài)碼
- 借助script進(jìn)行Http跨域請(qǐng)求:JSONP實(shí)現(xiàn)原理及代碼
- 用jQuery與JSONP輕松解決跨域訪問(wèn)的問(wèn)題
- 使用jsonp完美解決跨域問(wèn)題
相關(guān)文章
Chrome中JSON.parse的特殊實(shí)現(xiàn)
ECMA 262 Edition5 中提供了原生的JSON支持,其中JSON.parse用來(lái)將字符串轉(zhuǎn)成成json,見ECMA 262 Edition5 15.12.2。另見:字符串轉(zhuǎn)換成json的三種方式2011-01-01json解析大全 雙引號(hào)、鍵值對(duì)不在一起的情況
這篇文章主要介紹了json解析大全 雙引號(hào)、鍵值對(duì)不在一起的情況,需要的朋友可以參考下2019-12-12JSON 學(xué)習(xí)之JSON in JavaScript詳細(xì)使用說(shuō)明
只需要在前臺(tái)頁(yè)面中引入相應(yīng)的javascript即可測(cè)試2010-02-02快速解決處理后臺(tái)返回json數(shù)據(jù)格式的問(wèn)題
今天小編就為大家分享一篇快速解決處理后臺(tái)返回json數(shù)據(jù)格式的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08詳解JSON1:使用TSQL查詢數(shù)據(jù)和更新JSON數(shù)據(jù)
這篇文章主要介紹了使用TSQL查詢數(shù)據(jù)和更新JSON數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-11-11