什麼是 JSONP?
JSONP,或“帶填充的 JSON”,是一種允許跨不同域交換 JSON 資料的技術。當一個網域上的 Web 應用程式需要從不同網域上的伺服器存取資料時,這特別有用。
為什麼要建立 JSONP?
跨域請求出於安全考慮,瀏覽器通常不允許。然而,JSONP 透過使用腳本標籤克服了這一限制,腳本標籤不受相同的限制。
JSONP 的工作原理
要啟用 JSONP,需要包含一個回呼參數在請求 URL 中。此參數指定客戶端的一個函數,該函數將處理接收到的 JSON 資料。
伺服器使用函數呼叫中包含的 JSON 資料回應,呼叫指定的回呼函數。例如,如果回調參數是“myCallback”,則伺服器回應可能如下所示:
myCallback({ foo: 'bar' });
JSONP 的優點和限制
JSONP 提供了簡單的方式來進行跨域請求。但是,它確實有一些限制:
JSONP 的替代品
CORS(跨來源資源共享)是一種更安全、更現代的跨域請求方法。它提供了對請求的細粒度控制,並且在大多數情況下優於 JSONP。
結論
JSONP 是一種巧妙的解決方法,可以在 CORS 時促進跨域請求沒有得到廣泛支持。然而,隨著 CORS 的可用性,通常建議使用 CORS,因為它提供卓越的安全性和控制。儘管如此,JSONP 在某些情況下仍然是一種有用的技術,特別是在支援舊版瀏覽器方面。
以上是JSONP 與 CORS:JSONP 何時仍與跨域資料交換相關?的詳細內容。更多資訊請關注PHP中文網其他相關文章!