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.locationwindow.location.href 应该没有任何区别。 任何其他解决方案

以上是关于window.location 不使用 Ajax 重定向的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 ajax 调用的情况下在 window.location 中传递一个数组

window.location.href 无法跳转

当 window.location=self.location 不起作用时通过 AJAX 重新加载页面

基于 AJAX 的站点中的 JS window.location

将标题添加到 window.location.pathname

window.location.href 页面不跳转解决