2012-12-26 50 views
1

根據AJAX redirect dilemma, how to get redirect URL OR how to set properties for redirect request,似乎無法確定何時發生HTTP重定向,以及瀏覽器被重定向到的目標URL。使用XMLHttpRequest標準化URL?

因此,如何以可靠的方式比較兩個網址?例如,我的碼進行比較兩個網址:

http://example.com/users/[email protected]/http://example.com/users/53/

兩個實際上指的是相同的用戶(第一請求重定向到第二使用HTTP 303),但似乎沒有成爲一個方式因爲瀏覽器發現這個,所以它錯誤地認爲這兩個用戶是不同的。

從技術上講,資源表示可以包含其規範URI,但是如果可能的話,我想避免這種解決方法/黑客。有任何想法嗎?

+0

解決這個問題,要做到什麼最終?當然,如果URI的路徑不同,它們是兩種不同的資源。那麼你究竟想要實現什麼? – DanMan

+0

@丹曼,你錯了。 URI可能不同,但它們指向相同的資源。這是URI規範化的關鍵。 URI身份對於緩存目的以及一些業務邏輯至關重要。例如,客戶端想要在除本身之外的所有用戶上調用一個操作。如果無法比較用戶,則無法將其自身排除在處理之外。 – Gili

+0

如果一切都有自己獨特的地址,你就不必考慮這個問題。如果第二個URI是首選的,你應該重定向到狀態301. – DanMan

回答

1

我最終返回了規範URI作爲響應正文的一部分。這是一個醜陋的黑客攻擊,但似乎沒有人有任何其他想法。

捐款歡迎!隨時發佈新的答案,我會考慮他們。

UPDATE:W3C正在討論在https://www.w3.org/Bugs/Public/show_bug.cgi?id=15417