window.location 没有正确设置新值

window.location not setting to new value correctly

我目前在 javascript 网站上 运行 遇到一些问题。我正在尝试重定向到一个新页面,但是我没有将重定向 url 设置到我传入的页面,而是将其连接到现有 url.

的末尾

例如,如果我当前在 www.whosebug.com/questions 并且想去 www.whosebug.com/questions/ask,则 url 变为 www.whosebug.com/questions/www.whosebug.com/questions/ask

当我将包含 URL 的变量输出到控制台时,它显示正确

var nextPage = window.location.hostname + data.redirectUrl + "?confirmationtype=success";
console.log(nextPage);
window.location.href = nextPage;

上面的输出将是 www.whosebug.com.au/questions/ask 但会重定向到 www.whosebug.com/questions/www.whosebug.com/questions/ask

我做了一些搜索,在很多情况下它似乎与表单上的 onpost 方法有关,但我看不出这在我的页面上会是一个问题,而且我正在使用轮询计时器方法来触发这些调用,因此页面 posts 不应成为一个因素。此外,如果我尝试 onpost="return false" 使用相同布局的其他页面无法 post :S

如有任何帮助,我们将不胜感激。

Url 没有协议 ("http:") 变成相对的 Url - 所以当你尝试设置 window.location 时它不会执行导航。

类似于:

var nextPage = window.location.hostname + data.redirectUrl + "?confirmationtype=success";
console.log(nextPage);
window.location = "http://" + nextPage;

您可以使用window.location.protocol代替"http://",您可以在上面的代码中使用window.locationwindows.location.href

请注意,您的示例显示了一些奇怪的 window.location.href(nextPage);,这是函数调用,但 href 不是函数。