window.location 不使用 Ajax 重定向
Posted
技术标签:
【中文标题】window.location 不使用 Ajax 重定向【英文标题】:window.location does not Redirect with Ajax 【发布时间】:2020-11-13 03:01:02 【问题描述】:我有一个包含多个使用 Ajax 的用户控件的页面。当我尝试从此页面执行 window.location 时,Ajax 会捕获调用并且不允许重定向。
$.ajax(
url: 'assets/php/action.php',
method: 'post',
data: $("#register-form").serialize()+'&action=register',
success:function(response)
$("#register-btn").val('Sign Up');
// console.log(response);
if(response === 'register')
alert("you will now be redirected");
window.location = 'home.php';
else
$("#regAlert").html(response);
);
【问题讨论】:
尝试验证您尝试重定向到的位置是否正确。自行执行代码window.location = 'home.php'
(例如,即使在您的 JS 控制台窗口中)。
重定向位置是对的其实我想把它重定向到 index.php 到 home.php 但它不能
“Ajax 捕获呼叫”是什么意思?您确定看到警报了吗?
【参考方案1】:
使用这个而不是window.location.href = 'home.php';
【讨论】:
您确定该块是否有效?alert("you will now be redirected");
显示给你看?
DcoDeck,为了解决这个问题,你必须首先检查 url assets/php/action.php``` works, secondly check if
response```statement 是否真的给出了“register”字符串。然后就可以进行重定向操作了。
是警报没有显示,那么它与window.location
分配无关,您的响应不是“注册”。你在那里评论了一个console.log(response)
,它说了什么?
@GeovaniSantos 在通过分配重定向时使用window.location
或window.location.href
应该没有任何区别。
任何其他解决方案以上是关于window.location 不使用 Ajax 重定向的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有 ajax 调用的情况下在 window.location 中传递一个数组
当 window.location=self.location 不起作用时通过 AJAX 重新加载页面
基于 AJAX 的站点中的 JS window.location