2

这是对我之前的问题的跟进:Problem passing parameters via Iframe in IE。从来没有解决过。


这是它的核心:

我正在尝试从我的网站执行 HTTP GET 到通过 iframe 引入的另一个网站。

在 Firefox 上,您可以在源代码中看到正确的 url 及其正确的参数在 iframe src 中——并且它有效。

在 IE 上,您可以在源代码中看到正确的 url 及其正确的参数在 iframe src 中——但它不起作用......

IE 是否有某些东西不允许您通过查询字符串中的 iframe 传递参数?

我尝试在 IE 中刷新 iframe,我尝试在 IE 中刷新我的页面和 iframe,并且我尝试复制 url 并将其重新粘贴到 iframe src 中(强制它刷新,就像我刚输入一样它进入该 iframe 窗口的地址栏中)。还是没有运气!

任何人都知道为什么会发生这种情况,或者有任何建议来尝试解决这个问题?

至于代码,它所做的只是在页面加载时从后端代码创建 src 并从后端设置 src 属性......

//Backend code to set src
mainIframe.Attributes["src"] = srcWeJustCreated;

//Front end iframe code
<iframe id="mainIframe" runat="server" />

我已经为您创建了一个临时帐户,以便您登录并确切了解我的意思。这样,您可以使用 firebug 或任何其他调试技术来找出为什么这不起作用,而不是让我尝试解释发生了什么。

编辑:更改了帐户凭据。请改用这个
用户名 :matt
密码:globalbuying

请点击此链接进入登录页面。使用上述凭据登录后,您将进入主后端页面。单击左侧显示“假期”的图像,它将带您进入带有 iframe 的页面,并从那里执行 Http Get。

如果您需要有关背后代码等内容的更多详细信息,请告诉我,我会发布它们。

谢谢,
马特

4

3 回答 3

12

在使用Fiddler2处理 HTTP 请求后,比较不同的浏览器,我发现 IE 可以很好地发出请求,但无法在iframe.

我还注意到,如果我自己打开该框架页面,它确实可以工作。更重要的是,在那里再次注销后,iframed 版本也可以使用。那是因为它已经有一个会话 cookie,iframe不再需要设置它。

事实证明,这是一个已知的安全限制:IE 阻止 iframe 中的 cookie。但这可以通过使用隐私偏好平台 (P3P)来克服。

这里有一些链接可以帮助您解决问题。从 StackOverflow 上的另一个(已回答)问题开始:

于 2009-09-03T20:41:53.910 回答
0

您提供的示例页面在 IE8 中为我工作。iframe 不像 chrome 那样高,但它确实有正确的页面。

顺便说一句,请注意,通过查询字符串传递登录凭据非常不安全,并且容易受到各种攻击。

于 2009-08-31T17:15:04.443 回答
0

iframe 的 URL 中的 & 符号似乎是 HTML 编码的 ( &amp;)。我认为这可能会导致 IE 无法识别参数名称。如果您在 URL 中使用纯 & 符号,问题是否仍然存在?

如果 src 属性上的编码是隐式发生的,您可能需要考虑使用Literal控件进行测试并将其Text属性设置为整个 iframe 标记以避免任何不需要的编码。

于 2009-09-03T14:14:44.313 回答