簡介
JSONP,或有Padding 的JSON,是一種有助於數據交換的JSON 擴展不同來源的網站之間。它的創建是為了規避瀏覽器的跨來源資源共享 (CORS) 限制。
概念
當網站嘗試從另一個具有不同來源的網站存取資源時,瀏覽器會應用CORS限制以防止安全漏洞。 JSONP 透過使用不受 CORS 限制的腳本標籤來利用此機制中的漏洞。
JSONP 的工作原理
要使用JSONP,客戶端網站包含一個指定回呼函數並向伺服器網站發送請求的腳本,如下所示:
http://www.example.net/sample.aspx?callback=mycallback
伺服器網站以JSON回應資料包裹在指定的回調函數中,如下所示:
mycallback({ foo: 'bar' });
客戶端網站定義了回調函數,該回調函數在腳本載入時執行:
mycallback = function(data){ alert(data.foo); };
解決跨來源問題
JSONP 允許透過使用腳本標籤繞過CORS 限制進行跨來源資料傳輸。這使得網站即使託管在不同的網域上也可以相互通訊。
用例
JSONP 在CORS 不可用的情況下很有用,例如:
以上是JSONP如何解決跨來源資料傳輸問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!