【问题标题】:Refreshing a page in a browser yields POST or GET request?在浏览器中刷新页面会产生 POST 或 GET 请求?
【发布时间】:2010-12-21 09:01:31
【问题描述】:

我现在正在学习 asp.net mvc 表单处理,但对以下内容感到困惑:

如果我们按下浏览器上的刷新按钮会发生什么? 它发出 POST 或 GET 请求?

【问题讨论】:

    标签: post browser get


    【解决方案1】:

    这取决于浏览器为获取当前数据而进行的最后一次调用。例如:

    a) 如果您提交了一个表单,执行 POST 然后点击刷新,浏览器将执行另一个 POST。

    b) 如果您只是单击了将您带到另一个页面的链接,执行 GET,您将执行一次刷新。

    如果您刚开始了解 GET/POST 方法,那么您应该了解一个很好的模式,它可以帮助您避免遇到用户在访问后不断刷新浏览器的情况下一次又一次地发布数据的情况。发布:

    http://en.wikipedia.org/wiki/Post/Redirect/Get

    An example specifically for asp.net MVC

    【讨论】:

    • 感谢您的回答。我现在知道了。为了完整起见,如果我们按下后退或前进按钮会发生什么?
    • 您的链接对我来说非常有用和有用。非常感谢。
    【解决方案2】:

    当您点击刷新时,用于生成页面的任何 HTTP 方法都会重复。

    如果你在提交表单时使用<% Html.BeginForm(...) %>,它会创建一个POST,如果结果页面被刷新,它会重复POST。

    【讨论】:

    • 所以建议在处理post表单字段的action方法中重定向到另一个页面?
    • 不需要重定向或呈现不同的视图。您可以将结果传回 ViewData 或 ModelState。
    猜你喜欢
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    相关资源
    最近更新 更多