【发布时间】:2015-03-12 01:13:40
【问题描述】:
我有一个用户提交的表单,它会检查一些 Web 服务,当其中一个 API 返回错误时,我会使用 JS 刷新表单,维护 POST 数据。
<script>
window.onload = function() {
if(!window.location.hash) {
window.location = window.location + '#loaded';
window.location.reload();
}
}
</script>
它在 Chrome/Safari 中运行良好。我尝试了下面的变体,但没有成功,部分原因是我要附加到 URI。
window.location=window.location; window.location.href = window.location;
任何帮助都将不胜感激,因为我已经为此花费了很多时间。谢谢。
【问题讨论】:
-
使用 GET 而不是 POST 提交原始表单。 POST 表示将更改服务器资源的操作,因此会发出警告。 GET 意味着一个只读操作,可以重复而没有任何后果
-
我知道这是一种选择,但我想尽可能避免这种情况。
-
为什么要避免它? (我问是因为你的理由可能会提出替代方案)
-
我的理由并不重要,但感谢您最初的建议。
-
欢迎,但这有点像说“我不能用螺丝刀敲这个钉子”“为什么不用锤子?” “我不想”。如果您的原因是因为 url 中有您不想要的信息,则可以将 POST 表单重定向到具有可刷新 Id 的 GET url。如果是因为您不知道如何对 GET 参数进行 url 编码,我们可以向您展示如何。如果存在一些无法更改的现有表单逻辑,则 iframe 可能是一种选择。如果您不愿意提供更多信息,那么我们只能说“答案是否定的。您在工作中使用了错误的工具”
标签: javascript jquery firefox reload onbeforeunload