如何防止window.location.pathname转义URL中的字符

时间:2011-06-28 02:02:52

标签: javascript google-chrome

我正在开发一款谷歌应用引擎应用。我在点击按钮时尝试将用户重定向到登录页面。为此,我将window.location.pathname设置为以下字符串/_ah/login?continue=http%3A//localhost%3A8080/。但是,chrome会转义字符串,以便完整的URL变为http://localhost:8080/_ah/login%3Fcontinue=http%3A//localhost%3A8080/,这会产生404错误。我怎样才能防止这种情况发生?有效的网址是http://localhost:8080/_ah/login?continue=http%3A//localhost%3A8080/

3 个答案:

答案 0 :(得分:8)

改为设置window.location.href

答案 1 :(得分:0)

我认为你最好只使用window.location.href。 Chrome和Firefox window.location.href="/?foofoo"重定向到<domain:port>/?foofoo

答案 2 :(得分:0)

如果你单独设置位置和查询字符串,你应该得到更好的结果(至少在chrome中)

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!" 
 />