2

This answer表示XmlHttpRequestObject Level 2支持跨站點AJAX調用。我知道很多瀏覽器都支持很多HTML5功能。這是什麼Chrome或Firefox(或由一些奇蹟IE)支持?XHR Level 2的Cross Site AJAX呼叫

如果是這樣,當使用$.ajax方法時,jQuery是否提供了一種方法來利用它?

回答

2

是的,瀏覽器如Firefox> 3.5和Safari> 4,Chrome> 3支持XmlHttpRequestObject 2級,IE 8有自己的獨立XDomainRequest。儘管如此,另一方(您要求提供數據)必須允許以這種方式訪問​​數據(通過稱爲CORS的東西),因此您無法對任何任意域進行跨域請求。如果您向某個兼容的遠程API發出請求,這可能沒有問題,但情況並非總是如此。

這就是說,我不會推薦跨域AJAX,因爲我不能真正看到它提供的好處。瀏覽器鎖定可以通過使用AJAX代理來防止(對遠程域的常規HTTP請求由服務器執行,結果通過AJAX調用返回)。很多流行的瀏覽器都不支持跨域AJAX(IE 6,IE 7,沒有Opera的版本),所以你正在創建很多兼容性問題。

作爲你的問題的一部分要求一個例子,here's an article關於如何實現這一點,包括一個小演示。它包括文件cors.js,它似乎是跨瀏覽器的跨域AJAX兼容。

+0

感謝您的回答。我非常關心的主要原因是因爲我已經在Amazon WS上做了一些工作,並且他們限制你只有一個請求/ IP,所以如果一切都通過你自己的代理,那麼如果你受歡迎並且超過了這個,你會有一些下降的請求。當然跨域與Silverlight一起工作,但我更喜歡javascript/html5。 –

+1

所以,如果你使用合適的瀏覽器,使用jQuery足夠聰明,爲你使用XHR Level2對象? –