重定向后 - 使用Internet Explorer获取

Tom*_*lak 10 internet-explorer http post-redirect-get

我有一个实现post/redirect/get模式的网页,以避免在简单的CRUD应用程序中发布双重帖子.

这里的预期请求/响应顺序是:

  1. 浏览器通过发送数据 POST
  2. 服务器修改数据库,以状态302 Moved TemporarilyLocation标头响应
  3. 浏览器遵循重定向通过 GET
  4. 服务器响应更新的页面

这就是它应该如何工作 - 而且确实如此.

但是,Internet Explorer 9也将步骤3作为a发送POST(包括完整的表单数据集!).为什么?我应该怎么做才能使用它GET

我应该补充一点,除了查询字符串,重定向转到与表单目标相同的位置.

我试过了:

  • 所有可用的渲染模式(IE7,IE8,IE9,Quirks,Standards,Compat)
  • 一个完整的DOCTYPE
  • Location标题中的相对URL或绝对URL
  • HTTP状态303(只是为了看看是否有任何区别)

Jul*_*hke 4

如果您想要 GET,正确的状态代码是303,尽管 301 和 302 也可以在常见浏览器中执行您想要的操作。

如果这不起作用,则可能是其他地方出了问题。HTTP 跟踪有助于查找问题所在。