Spe*_*ick 11 javascript asp.net webforms
在我的ASP.NET WebForms页面中,我弹出了一个Modal窗口.用于显示此模态窗口的javascript代码如下:
function OpenMailAddressWin(subscriberContactRelationGid, routeId, btn) {
window.showModalDialog("SubscriberSecondaryAddress.aspx" + BuildQueryStringValuesForSubscriber(subscriberContactRelationGid, routeId, returntxtReceiptDate().value), this, strWindowFeatures + ";scroll:no;dialogWidth:442px;dialogHeight:350px");
location.reload(true);
}
Run Code Online (Sandbox Code Playgroud)
关闭模态窗口后,我需要刷新父页面(因此最后是location.reload(true);语句),以便在模态窗口中进行更改生效.
现在的问题是,当我关闭这个模态窗口时,有时(不是每次,真气)都会出现一个警告弹出窗口,上面写着:
"要再次显示网页,Internet Explorer需要重新发送您最近提交的信息.
如果您要进行购买,则应单击"取消"以避免重复交易.否则,请单击"重试"以再次显示该网页."
任何想法为什么会这样?
Kha*_* TO 32
这是浏览器中的双重提交问题.
当使用POST请求加载页面并尝试使用重新加载页面时location.reload(true);,浏览器需要向服务器发送另一个POST请求,这可能会导致问题,因为POST应该更改服务器上的状态.因此,浏览器需要来自用户的确认.为了解决这个问题,我们通常使用POST-REDIRECT-GET模式.
在您的情况下,只需使用就location.href = location.href可以解决问题,因为这将使用GET重新加载页面.
| 归档时间: |
|
| 查看次数: |
40682 次 |
| 最近记录: |