2011-04-03 145 views
2

我們知道Ajax請求只能在運行我們的應用程序的同一臺服務器上進行,這被稱爲相同的原始策略。 但是在例如JQuery ajax方法$ .getJSON中,即使它不涉及我們自己的服務器,我們也能夠傳入任何url。這不是違反了非跨域Ajax請求策略嗎?

請幫助 謝謝

回答

7

getJSON使用JSONP protocol

而不是製作一個XmlHTTPRequest,它不能跨域,它使<script>標記指向一個不同的域中的URL。
假定該URL返回一個腳本,該腳本使用相關數據調用指定的回調函數。

+1

Basiclly它在返回函數中包裝json響應。 – 2011-04-03 11:53:09

+1

更重要的是,它要求您完全信任目標網址。如果你不這樣做,你可以讓他們有機會在你的網站上運行代碼,這可能會被濫用來攻擊網站或用戶。 – EricLaw 2011-04-03 14:35:16