【发布时间】:2011-11-16 13:33:50
【问题描述】:
我想将一些数据发布到服务器,作为响应,我想创建一个 CSV 文件,以application/excel 作为 MIME 类型(最近被识别为 Internet 媒体类型),以强制浏览器打开生成的Microsoft Excel 中的 CSV 文件。但是,我还想防止用户在刷新页面时意外重新提交相同的信息(重新发布表单)。
通过简单的 CRUD 操作,我使用Post/Redirect/Get 模式,因此任何进一步的刷新只会向服务器发送 HTTP Get 请求,不带任何参数,因此不会改变服务器的状态 (Idempotence)。
当响应不是页面而是文件时,阻止用户向服务器重新提交(重新发布)相同信息的公认模式是什么?
有什么想法吗?
【问题讨论】:
-
请注意,如果您尝试通过刷新浏览器重新发布数据,Firefox(我认为是 IE 和 Safari)会发出警告。我注意到的最常见的(客户端)方法是使用 Javascript 禁用提交按钮。如果您依赖某些浏览器配合,您也可以尝试设置和检查 cookie。
标签: redirect refresh http-post httpresponse