在AJAX中使用window.location.replace'成功'回调

Is it bad practice to use window.location.replace from within AJAX 'success' callback?

本文关键字:成功 回调 replace location AJAX window      更新时间:2023-09-26

在jQuery AJAX请求中执行重定向是不是一种糟糕的做法?

$.ajax({
    url: "myurl",       
    success : function(response) {  
        window.location.replace('MYNEWPAGE');
    },
    error: function (xhr) {
    }

我在一个应用程序中遇到了一些奇怪的行为,我认为这就是问题所在。

location.replace()不会将当前页面存储到浏览器历史记录中,用户不能使用后退按钮返回页面。您应该使用location.assign(URL)location.href = URL

应该只使用window.location.href = "whatever"来更改url。请注意,这将导致您回发整个页面,奇怪的行为可能来自于新页面上的加载事件意外触发,包括其他可能设置window.location.href的ajax事件-理论上,您可能会因为继续将您发送到新页面而陷入僵局(小心)。