我的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请求和/或重定向重定向的整个页面?