我有一个网页,该网页实现了post/redirect/get模式,以避免在一个简单的CRUD应用程序中出现重复帖子。

预期的请求/响应顺序如下:

  • 浏览器通过POST发送数据
  • 服务器修改数据库,以302 Moved Temporarily状态和Location header
  • 响应
  • 浏览器通过GET遵循重定向,
  • 服务器以更新的页面
  • 进行响应

    这就是它应该如何工作的方式-确实如此,例如在Chrome中。

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

    除了查询字符串外,我还应该将重定向重定向到与表单目标相同的位置。

    我试过了:
  • 所有可用的呈现模式(IE7,IE8,IE9,Quirks,Standards,Compat)
  • 完整的DOCTYPE
  • 相对URL或Location header
  • 中的绝对URL
  • HTTP状态303(只是看这是否有所不同)
  • 最佳答案

    如果您想要GET,则正确的状态码是303,尽管301和302也会在常见的浏览器中完成您想要的操作。

    如果这不起作用,则可能是其他问题。 HTTP跟踪将有助于发现问题所在。

    关于internet-explorer - 使用Internet Explorer进行重定向后获取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9912200/

    10-16 18:36