我正在開發一個谷歌應用程序引擎應用程序。我正嘗試將用戶重定向到單擊按鈕時的登錄頁面。爲此,我將window.location.pathname
設置爲以下字符串/_ah/login?continue=http%3A//localhost%3A8080/
。但是,chrome轉義字符串以使完整的URL變爲http://localhost:8080/_ah/login%3Fcontinue=http%3A//localhost%3A8080/
,並且這會產生404錯誤。我怎樣才能防止這種情況發生?工作的URL是http://localhost:8080/_ah/login?continue=http%3A//localhost%3A8080/
如何防止在URL中轉義字符的window.location.pathname
回答
我認爲你最好使用window.location.href。在Chrome和Firefox中window.location.href="/?foofoo"
重定向到<domain:port>/?foofoo
改爲設置window.location.href
。
window.location.href是做同樣的事情,是我最初使用的。我認爲它不會逃脫?但它逃脫&。無論我在哪裏,它都變成了&,這打破了我的應用程序。 – morpheus
聽起來像你有不同的問題。如果瀏覽器要在該位置轉義某些內容,它將使用%XX樣式,而不是像&這樣的HTML實體。我的猜測是,您需要在模板引擎中將字符串標記爲安全,以防止它插入HTML實體。要驗證這是問題,請在受影響的頁面上查看源代碼並查看呈現此值的位置。 –
,如果你設置的位置和查詢字符串分開,你應該得到更好的結果(至少在鉻)
function redirect_to_login()
{
window.location.href = "/_ah/login";
window.location.search = "?continue=http%3A//localhost%3A8080/";
}
我沒有在IE遺憾嘗試。它似乎可以在Chrome中進行少量測試。
(第二個想法......如果你把這個在onclick屬性):
<input type="button"
onclick="window.location.href = '/_ah/login'; window.location.search = '?continue=http%3A//localhost%3A8080/';"
value="Click Me!"
/>
這實際上更糟。 window.location.href跟在window.location.search之後,就像window.location.href從未出現過一樣(使用Chrome 12 - 在本地主機上測試)。 – morpheus
@morpheus這不太好。我意識到我測試過的頁面不會顯示出來。我很抱歉。我建議的唯一的另一件事是使用'.assign(「/ _ ah/login /?continue = http%3A // localhost%3A8080 /'否則找出爲什麼window.location.href在分配時無法正常工作在一次打擊。這通常工作(如在@ minitexc的答案) –
- 1. 如何防止JAXB轉義字符串
- 2. 如何防止Flash的URLRequest轉義url?
- 3. 如何防止在Python中自動轉義特殊字符
- 4. 如何防止Uglify在字符串中轉義「</ script」?
- 5. 無論如何,以防止轉換轉義字符的innerHTML/$。html?
- 6. 如何防止NSJSONSerialization在URL中添加額外的轉義
- 7. 防止查詢字符串中的轉義字符
- 8. 防止PHP解析字符串中的轉義字符
- 9. 如何防止Builder模板在屬性值中轉義URL?
- 10. 防止轉義字符串c#
- 11. 防止json_encode添加轉義字符
- 12. 防止Nokogiri逃離URL中的字符
- 13. 如何轉義字符在FTP URL
- 14. 如何防止Html.ActionLink在URL中編碼非ASCII字符
- 15. 如何防止Perl將\解釋爲轉義字符?
- 16. 如何防止「\」轉義字符出現在預加載的表單域中
- 17. 防止對URL字符串在PHP
- 18. SublimeText3防止在引用字符串中轉義反斜槓
- 19. 防止在LaTeX輸出中轉義特殊字符
- 20. Symfony 1.4:是否有可能防止轉義URL的轉義?
- 21. 如何防止url被轉換?
- 22. 防止在IE中錯誤的URL轉義
- 23. 如何防止System.Xaml.XamlXmlWriter轉義我的MarkupExtension?
- 24. 防止鍵盤輸入中的ANSI轉義字符C
- 25. 如何阻止REXML轉義字符?
- 26. 如何防止在URL中顯示JSESSIONID
- 27. 防止url字符串編碼&到&
- 28. 防止Gson轉義Unicode符號
- 29. 如何防止Symfony2轉義html
- 30. 如何在URL中轉義中文Unicode字符?
這不會有什麼使用App Engine。 –