当我点击后退按钮时Chrome浏览器提交表单时没有显示任何弹出通知?

时间:2013-09-12 12:21:08

标签: asp.net google-chrome

Chrome现在每天都在吸吮。我有一个ASP.NET应用程序。当用户执行POST操作时。然后他点击一个链接(GET动作)。然后单击浏览器后退按钮。 Chrome正在再次执行POST操作。在任何其他浏览器中没有问题。以下是任何人都可以确认的示例。只需单击POST按钮,然后单击GET链接,然后单击“上一步”按钮。创建2个WebForm页面,

WebForm1.aspx的

<%@ Page Language="C#" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <input type="submit" value="POST" />
        <a href="WebForm2.aspx">GET</a>
    </form>
    Http Details:
    <%= Request.HttpMethod %>
    <%= DateTime.Now %>
</body>
</html>

WebForm2.aspx

<%@ Page Language="C#" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <input type="submit" value="POST" />
        <a href="WebForm1.aspx">GET</a>
    </form>
    Http Details:
    <%= Request.HttpMethod %>
    <%= DateTime.Now %>
</body>
</html>

更新:我在上面添加了 DateTime.Now 。这是观察,

Open WebForm1.aspx
Http Details: GET 9/24/2013 11:43:10 AM

Click Post Button,
Http Details: POST 9/24/2013 11:43:35 AM

Click GET Button(The Browser will redirect you too WebForm2.aspx),
Http Details: GET 9/24/2013 11:43:46 AM

Click Browser Back Button(The Browser will show WebForm1.aspx in address bar)
Http Details: POST 9/24/2013 11:44:17 AM

2 个答案:

答案 0 :(得分:4)

通过后期操作的重定向来回应通常是一种好习惯:

  1. 浏览器POST表单:返回位置为X的HTTP / 302
  2. 浏览器获取X:提供第X页
  3. 浏览器重新加载现在将执行GET X
  4. 在重新加载该页面时,这样会再次提供该页面,而不会尝试再次发布该表单。

    这可能也解决了您对此Chrome错误的问题。

答案 1 :(得分:1)

此问题仍然以铬为开放。要了解此问题的状态,请在此处查看。

https://code.google.com/p/chromium/issues/detail?id=263508

同时尝试上面的回答