創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供王屋網(wǎng)站建設(shè)、王屋做網(wǎng)站、王屋網(wǎng)站設(shè)計、王屋網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、王屋企業(yè)網(wǎng)站模板建站服務(wù),10年王屋做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。JSONP是什么?針對這個問題,這篇文章給出了相對應(yīng)的分析和解答,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。
JSONP
JSONP(JSON with Padding)是JSON的一種"使用模式",可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問的問題。由于同源策略,一般來說位于 server1.example.com 的網(wǎng)頁無法與不是 server1.example.com的服務(wù)器溝通,而 HTML 的<script> 元素是一個例外。利用 <script> 元素的這個開放策略,網(wǎng)頁可以得到從其他來源動態(tài)產(chǎn)生的 JSON 資料,而這種使用模式就是所謂的 JSONP。用 JSONP 抓到的資料并不是 JSON,而是任意的JavaScript,用 JavaScript 直譯器執(zhí)行而不是用 JSON 解析器解析。
JSONP的由來
根據(jù)瀏覽器同源策略,所謂同源就是協(xié)議、主機、端口號都相同時成為同源。a 域的js不能直接訪問 b域名的信息,但是script 標(biāo)簽的src屬性可以跨域引用文件,jsonp是請求之后后臺包裝好一段json,并且把數(shù)據(jù)放在一個callback函數(shù),返回一個js文件,動態(tài)引入這個文件,下載完成js之后,會去調(diào)用這個callback,通過這樣訪問數(shù)據(jù)。
JSONP有什么用?
由于同源從略的限制,XMLHttpRequest只允許請求前源(域名、協(xié)議、端口)的資源,為了實現(xiàn)跨域請求,可以通過script標(biāo)簽實現(xiàn)跨域請求,然后再服務(wù)端輸出JSON數(shù)據(jù)并執(zhí)行回調(diào)函數(shù),從而解決跨域數(shù)據(jù)請求
JSONP原理
首先在客戶端注冊一個函數(shù);然后把函數(shù)的名字傳給服務(wù)器;接著服務(wù)器成JSON數(shù)據(jù),并以Javascript語法的方式,將數(shù)據(jù)傳入客戶端注冊的函數(shù)中;最后在客戶端注冊函數(shù)中接收J(rèn)SON即可。
JSONP的使用
1. 在客戶端調(diào)用提供JSONP支持的URL Service,獲取JSONP格式數(shù)據(jù)。
比如客戶想訪問http://www.yiwuku.com/myService.aspx?jsonp=callbackFunction
假設(shè)客戶期望返回JSON數(shù)據(jù):["customername1","customername2"]
那么真正返回到客戶端的Script Tags: callbackFunction(["customername1","customername2"])
可能的調(diào)用方式:
2. 在客戶端寫callbackFunction函數(shù)的實現(xiàn)
3. 頁面展示
4. 最終Page Code
關(guān)于JSONP的介紹就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
分享標(biāo)題:JSONP是什么-創(chuàng)新互聯(lián)
文章出自:http://vcdvsql.cn/article24/dshhce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、關(guān)鍵詞優(yōu)化、ChatGPT、企業(yè)建站、靜態(tài)網(wǎng)站、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容