从AJAX'success'回调中使用window.location.replace是不好的做法吗?

时间:2012-09-04 14:33:53

标签: javascript jquery ajax

在jQuery AJAX请求中执行重定向是不好的做法吗?

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

    }

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

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