我有一个可以从网站的任何页面调出和提交的表单。位于站点导航栏中的触发按钮将以类似模式的UI显示表单,并通过AJAX调用处理提交操作。如果POST成功返回,它将包含一个Location标头,其中包含页面的URL,而不是下一个需要显示的页面。
我需要浏览器在重定向到此返回的位置时始终重新加载页面。如果我只做window.location = xdr.getResponseHeader('Location')
并且当前URL减去哈希片段与新URL减去哈希片段相同,则页面将不会重新加载(至少这是我看到的Chrome中的行为)。
对返回的网址进行简短的手动解析,并与当前页面网址进行比较以告知何时致电reload()
以及何时简单地重新分配window.location
,是否有更直接的方式来实现所需的网页重装行为?
答案 0 :(得分:0)
如前所述,我相信您应该只使用传统的表单提交而不是Ajax。然后处理重定向服务器端,即使它是回发也应该总是强制页面加载。
答案 1 :(得分:0)
缓存由元标记和http响应请求控制。您可以通过在URL中附加?字符串使其成为新页面请求
var d = new Date();
var n = d.getTime(); /* n looks something like 1385580937315 */
window.location = xdr.getResponseHeader('Location')+"?"+n;
通过完全传递浏览器缓存。