您好,登錄后才能下訂單哦!
JSONP是什么?針對這個問題,這篇文章給出了相對應的分析和解答,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。
JSONP
JSONP(JSON with Padding)是JSON的一種"使用模式",可用于解決主流瀏覽器的跨域數據訪問的問題。由于同源策略,一般來說位于 server1.example.com 的網頁無法與不是 server1.example.com的服務器溝通,而 HTML 的<script> 元素是一個例外。利用 <script> 元素的這個開放策略,網頁可以得到從其他來源動態產生的 JSON 資料,而這種使用模式就是所謂的 JSONP。用 JSONP 抓到的資料并不是 JSON,而是任意的JavaScript,用 JavaScript 直譯器執行而不是用 JSON 解析器解析。
JSONP的由來
根據瀏覽器同源策略,所謂同源就是協議、主機、端口號都相同時成為同源。a 域的js不能直接訪問 b域名的信息,但是script 標簽的src屬性可以跨域引用文件,jsonp是請求之后后臺包裝好一段json,并且把數據放在一個callback函數,返回一個js文件,動態引入這個文件,下載完成js之后,會去調用這個callback,通過這樣訪問數據。
JSONP有什么用?
由于同源從略的限制,XMLHttpRequest只允許請求前源(域名、協議、端口)的資源,為了實現跨域請求,可以通過script標簽實現跨域請求,然后再服務端輸出JSON數據并執行回調函數,從而解決跨域數據請求
JSONP原理
首先在客戶端注冊一個函數;然后把函數的名字傳給服務器;接著服務器成JSON數據,并以Javascript語法的方式,將數據傳入客戶端注冊的函數中;最后在客戶端注冊函數中接收JSON即可。
JSONP的使用
1. 在客戶端調用提供JSONP支持的URL Service,獲取JSONP格式數據。
比如客戶想訪問http://www.yiwuku.com/myService.aspx?jsonp=callbackFunction
假設客戶期望返回JSON數據:["customername1","customername2"]
那么真正返回到客戶端的Script Tags: callbackFunction(["customername1","customername2"])
可能的調用方式:
2. 在客戶端寫callbackFunction函數的實現
3. 頁面展示
4. 最終Page Code
關于JSONP的介紹就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。