我提出了一个模式表单,它从用户那里收集一些东西并通过$.ajax()
调用将其传递给服务器。服务器发回一个应该成为window.location
浏览器新路径的路径。所以 ajax 调用希望是这样的:
$.ajax({
// stuff
success: function (destination) {
// other stuff
window.location = destination;
}),
// still more stuff
});
只要destination
是纯路径就可以正常工作,例如/some_path
并且如果浏览器当前不在该页面上。但是,如果路径是我当前所在的页面并且还包含一个目标 -- /some_path#some_target
,我会失败:浏览器只是将页面重新定位到指定的目标,但不会访问服务器以获得页面的全新视图,我需要的(因为服务器在 ajax 调用期间做了一些事情)。
那么,也许我只是location.reload()
在通话后添加一个window.location
?我认为,当代码在返回它的页面上运行时,这将起作用。但是如果我在另一个页面上,我会受到竞争条件的影响,在浏览器完成window.location
更改之前调用重新加载,并且我重新加载了旧页面,而不是新目的地。
布鲁格。有没有办法解决?