在Ajax POST请求中使用重定向响应加载整个页面

时间:2017-06-16 16:59:10

标签: javascript jquery html redirect

我的POST请求处理程序可以返回我加载到div中的内容,也可以重定向浏览器。当我使用jQuery的.post()时,在重定向的情况下,而不是整个页面重定向,从重定向返回的内容被加载到div:

var request = $.post('/my-post-url/');

request.done(function(response) {
  $('#my-div').empty();
  $('#my-div').append(response); // In case of redirect, response has new page's contents
});

为了解决这个问题,我使用了来自this answer的代码:

request.done(function(response) {
  if(xhr.responseURL != window.location.href.match(/(^[^#]*)/)[0])
  {
    location.href = xhr.responseURL;
    return;
  }

  $('#my-div').empty();
  $('#my-div').append(response);
});

这很好,但我最终对同一内容做了两个GET请求:第一个是在我进入done处理程序时自动完成的,第二个是在我设置location.href。有没有办法阻止这个额外的GET请求和/或重定向重定向的整个页面?

0 个答案:

没有答案