【问题标题】:How to solve the issue with "to display the website again, the web browser needs to resend the information you've previously submitted"如何解决“要重新显示网站,网络浏览器需要重新发送您之前提交的信息”的问题
【发布时间】:2012-07-09 23:44:51
【问题描述】:

我有一个父页面 asp.net,在弹出窗口中我有这个:

<body onunload="parent.opener.location.reload()">
    <form id="silverlightWindows" runat="server" />
</body>

问题是当弹出窗口关闭时,它总是用 IE 和 Firefox 询问这个确认信息:

to display the website again, the web browser needs to resend the information you've previously submitted

如何删除消息警告?

【问题讨论】:

    标签: asp.net html internet-explorer


    【解决方案1】:

    用户成功提交表单后,您应该重定向用户。这称为Post/Redirect/Get "pattern"

    【讨论】:

    • 我想在用户关闭窗口弹出窗口后重定向父位置。因此,我使用了onunload。有什么不同的方法可以用 Redirect 方法解决它吗?提前致谢。
    • 如果你想重定向他们,你为什么要调用reload
    • 这是我想出的在窗口关闭后重新加载父页面的唯一可能方法。你还有什么建议吗?
    • 在用户代理中导致消息的不是弹出窗口关闭的事实,而是已经发送的表单。
    【解决方案2】:

    显示该消息是因为您正在尝试重新加载父窗口的位置,并且该窗口当前正在显示回发的结果。

    要修复它,您必须:

    • 仅在“正常”非回发请求后打开弹出窗口。

    • 不使用location.reload(),而是使用location='(url to load here)'。如果可以在没有回发数据的情况下恢复父窗口的状态,这可能会起作用。

    • 您可以使用 javascript 在父窗口上进行回发。

    【讨论】:

    • 我非常感谢您的解决方案。你能给我样本答案吗?提前致谢。
    • 有没有办法在ie上避免这个问题?
    【解决方案3】:

    摆脱“Internet Explorer 需要重新发送您之前提交的信息” 使用这个脚本块

    >    window.parent.opener.document.forms[0].submit() ;
    

    【讨论】:

    • 错误:“无法获取未定义或空引用的属性‘文档’”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 2020-04-18
    • 2014-08-17
    • 1970-01-01
    相关资源
    最近更新 更多