首頁 >web前端 >js教程 >JSONP之我見_json

JSONP之我見_json

WBOY
WBOY原創
2016-05-16 16:07:481011瀏覽

JavaScript初學,一點自己的理解,有不當之處請大家指正~

JSONP:

本地html檔案要取得xxx網站(跨網域)資料時所使用的方法。

跨域問題:

外部伺服器的資料只能用外部伺服器中的js訪問,而本地js無法用XMLHttpRequest()存取。

外部伺服器中的Web服務提供JSON數據,例如在http://gumball.wickedlysmart.com/中,資料包含在函數updateSales中作為參數,現在要在本地html中存取外部伺服器中的JSON資料該怎麼辦?

1, 檢視Web服務文檔,明確服務實際使用的參數名稱(本例只有一個參數即一個物件數組);
2, 在url中指定一個回呼函數,http://gumball.wickedlysmart.com/?callback=updateSales,用來指定Web服務中存取JSON資料的函數名稱;
3, 在本地js檔案中使用剛才定義的函數名稱建立函數updateSales(物件),編寫處理得到外部JSON資料的方法;
4, 在html檔案中的

標籤下使用<script>標籤連結到外部Web服務,url為2中的那個路徑。 <p><strong>總結: <p>JSONP目的在於提供給本地html一個函數介面(本地html可透過在url後方加入?callback=functionName的方法指定函數名稱),為了確保資料存取的安全,伺服器將安全的資料放在回呼函數的參數中,函數內部的參數就是伺服器提供給本地的數據,至於怎麼使用這些數據就要在本地的js中定義這個callback函數了。 <p>注意:本地使用JSONP請求存取Web服務,可能會取得不安全的Js程式碼,所以要確保信任這個Web服務。 <p><strong>JSONP與XMLHttpRequest: <p>         XMLHttpRequest用於開發內部Web服務,內部存取內部,同域存取會更加簡單。 <p>         存取外部資料時(跨網域存取)要使用JSONP。 <p>以上所述就是本文的全部內容了,希望大家能夠喜歡,能夠對大家學習jsonp有所幫助。 </script>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn