【发布时间】:2010-11-19 15:37:45
【问题描述】:
我正在尝试在运行时从后面的代码中设置 iframe 的 HTML。
在我的 aspx 页面中,我有:
<asp:Button ID="btnChange" runat="server" Text="Change iframe content"
onclick="btnChange_Click" />
<br />
<iframe id="myIframe" runat="server" />
在后面的代码中:
protected void btnChange_Click(object sender, EventArgs e)
{
myIframe.InnerHtml = "<h1>Contents Changed</h1>";
}
当我运行它时......它会回发,但根本不会改变 myIframe 的内容...... 我做错了什么??
我需要这样做,因为我在结账过程中实施了 3D 安全。 基本上:
1) 客户输入信用卡详细信息 2) 提交表格,与支付网关核对是否需要 3d 安全。如果是这样,则会为银行安全位置生成 URL 以输入信息 3) 我创建了一个对此 url 的 POST 请求,其中包含一个长安全令牌和一些其他信息。我得到了从这个 POST 请求返回的 HTML,并且需要在 iFrame 中显示它。
这是文档所说的:
<html>
<head>
<title>Please Authenticate</title>
</head>
<body onload="OnLoadEvent();">
<form name="downloadForm" action="https://mybank.com/vbyv/verify" method="POST">
<input type="hidden" name="PaReq" value="AAABBBBCCCCHHHHHH=">
<input type="hidden" name="TermUrl" value="https:// www. MyWidgits.Com/next.cgi">
<input type="hidden" name="MD" value="200304012012a">
</form>
<script language="Javascript"> <!-- function OnLoadEvent(){ document.downloadForm.target = "ACSframe"; document.downloadForm.submit(); } //--> </script>
<!-- MERCHANT TO FILL IN THEIR OWN BRANDING HERE -->
<iframe src="blank.htm" name="ACSframe" width="390" height="450" frameborder="0">
</iframe>
<!-- MERCHANT TO FILL IN THEIR OWN BRANDING HERE -->
</body>
</html>
【问题讨论】:
-
我猜为什么选择 iframe,是因为 post 响应包含 html 头和正文标签
-
可能比什么都不做更好的方法是从帖子响应中提取必要的信息,而不是将整个作为内容转储
标签: c# asp.net iframe 3d-secure