2010-06-13 54 views
4

可能重複:
Please explain JSONPJSON和JSONP有什麼區別?

例如jQuery的文檔中我發現JSON和JSONP都提及。究竟有什麼區別?我怎麼看到哪個是哪個?哪一個應該用於什麼?

什麼是PHP函數json_encode生成?

+1

對於基本/細微的差異,維基百科是一個偉大的資源在這裏:http://en.wikipedia.org/wiki/JSON#JSONP – 2010-06-13 16:24:01

+1

請[請解釋JSONP](http://stackoverflow.com/questions/ 2067472 /請-解釋-JSONP) – 2010-06-13 16:24:56

回答

6

JSON是一種簡單的數據格式。 JSONP是一種使用該格式與跨域ajax請求同時未遇到Same Origin Policy問題的方法。基本上,這個想法是,不是使用ajax來請求JSON編碼的數據,而是向頁面添加一個腳本標記,將該數據加載爲JavaScript腳本,並將代碼回調爲「這裏是數據」。這是有效的,因爲應用於JavaScript腳本的「起源」是文檔的起源,而不是腳本的來源,這意味着它可以訪問您的代碼以調用回調。

json_encode產生JSON。如果您需要啓用跨域呼叫,您可能會使用json_encode作爲爲系統提供JSONP接口的一部分。我們將繼續使用它,但在IE中尚未得到很好的支持(IE7和以下版本根本沒有它; IE8有它,但要求使用IE8)客戶端代碼做了特別的事情; Chrome,Firefox等有它,並且不需要客戶端代碼做任何特殊的事情)。