我的 Asp.Net 网站单独工作正常。我们现在使用 HTTP GET 和 POST 方法将此网站加载到第三方网站的 iFrame 中。在大多数系统中,网页可以在 IE 的 iFrame 内正确加载。但有些系统,首先我的网站在 iframe 中正确加载,然后在 IE 中的 iFrame 中加载页面时抛出“尝试访问此页面时发生错误”错误。错误消息显示在 iFrame 内,而父网站继续正常运行。
我已经调试了asp.net/C#代码,看起来所有页面加载代码都正确执行,没有异常,但突然抛出错误。
我比较了两个系统中的 IE 设置,试图在两个系统中保持相同的设置,但没有成功。
导致此问题的原因可能是什么?是否可以捕获父网站错误?我无权访问父网站代码。任何帮助都会很棒。
最佳答案
经过一番折腾后,我终于能够检测到实际的错误。
我做了什么 在 IE 中使用 Tools->F12 Developer Tools 或在 IE 中按 F12。然后使用“网络”选项卡来跟踪导致问题的最后一个页面/链接。发现是我的网站导致了错误。现在是时候找出实际的错误了。
我在 Web.Config 文件中发现了这一点
<system.web>
<customErrors defaultRedirect="Error.htm" mode="RemoteOnly"/>
这导致重定向到“Error.htm”,其中显示通用自定义错误消息。所以我将上面的 customErrors 元素替换为如下
<customErrors mode="Off"/>
引用:Web.config Custom Errors mode Conflict
现在我收到了实际的错误。错误是:
从客户端检测到潜在危险的 Request.Form 值 (ConfigurationRequest="http://go.microsoft.com/fwlink/?LinkID=212874。
异常详细信息:System.Web.HttpRequestValidationException:从客户端检测到潜在危险的 Request.Form 值 (ConfigurationRequest="
现在我需要找出发生此问题的原因以及根本原因。让我们看看我能找到什么。但可以肯定这个问题是由第 3 方网站的 HTTP GET (Request.Form) 调用引起的
然后我发现A potentially dangerous Request.Form value was detected from the client
我添加了<httpRuntime requestValidationMode="2.0"/>
对于.Net4.0运行时有效
(如果 .Net 运行时是 2.0,则添加 <pages validateRequest="false">
)
web.config 开始工作。
但是还有一些错误。有些系统 IE 没有保存 session 和配置文件变量。当我使用 session 和配置文件变量时,这会在页面加载时导致几个问题。
我找到了Session Variables not saved when page is in an iFrame
并添加 IIS 中的 P3P header :
名称 = p3p 值 = CP="IDC DSP COR CURa ADMa 我们的 IND PHY ONL COM STA"
它在 iFrame 内开始工作文件。唷!!!
关于javascript - 在 iFrame 中加载时 Asp.Net 页面抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37180980/