今天我們要來討論一種在AJAX中常用的技術(shù)——JSONP。JSONP是一種跨域請求數(shù)據(jù)的方法。使用JSONP,我們可以在不使用服務(wù)器端設(shè)置CORS(跨域資源共享)的情況下,獲取來自不同域的數(shù)據(jù)。
在使用AJAX獲取數(shù)據(jù)的過程中,通常會遇到一個問題:由于瀏覽器的同源策略(Same Origin Policy),我們只能通過AJAX請求同源的數(shù)據(jù)。也就是說,如果我們的網(wǎng)頁位于http://www.example.com,那么我們只能通過AJAX請求http://www.example.com或者h(yuǎn)ttp://subdomain.example.com這樣的同源地址。如果我們想要獲取http://api.example.com的數(shù)據(jù),就會受到同源策略的限制,無法直接進(jìn)行AJAX請求。
不過幸運(yùn)的是,我們有JSONP這個技術(shù)可以解決這個問題。JSONP(JSON with Padding)允許我們通過動態(tài)創(chuàng)建一個的形式向服務(wù)器請求數(shù)據(jù)。服務(wù)器返回的數(shù)據(jù)將被包裹在我們指定的回調(diào)函數(shù)中,并通過