2010-11-12 96 views
6

我碰到了一個我從未必須解決的情況。我有一位客戶需要向網址發送ajax請求。由於內部原因,該URL重定向到需要訪問狀態碼的另一個URL。這種多請求方案是由Ajax請求本地處理的嗎?Ajax重定向處理

使用jQuery進行快速測試似乎處理302,做重定向並返回目標頁面的內容(我只需要生產中的狀態碼,但內容是「證明」的內容是正確的頁面是被訪問),但我無法找到任何跡象表明我可以期望它能夠普遍使用。我不知道客戶將使用什麼庫,如果有的話。此外,其他客戶將來可能會使用相同的URL,並且需要以相同的方式處理。

謝謝。

回答

10

可以期望這個通用,因爲它不是jQuery做處理。這是底層XmlHtpRequest瀏覽器對象的指定行爲,其中全部爲庫用於AJAX調用。

You can find the behavior specified here by the W3C

如果Location頭傳達的URLoriginsame originXMLHttpRequest origin和重定向不違反無限循環的預防措施,透明地遵循重定向同時觀察same-origin request event rules

我已經強調了最相關的位在這裏,只要它不違反規則same-origin policy(它不應該在你的同一個域),並從XmlHttpRequest將獲得最後一頁的內容就被重定向到。換句話說,這就是你現在用jQuery看到的行爲......只是不是jQuery所做的。

+0

完美,尼克。這恰恰是我希望學習的東西。 – 2010-11-15 12:23:08

0

如果你看看螢火蟲,你實際上可以看到發生重定向。我認爲你是對的,你不能依賴於每個瀏覽器。但我的傾向是,最近的瀏覽器會爲你處理http連接並進行重定向。