Asp.net 具有相同域页的iframe的Firefox跨源错误
我正在一个小型ASP.NET网站上工作,该网站有一个简单的页面,其中包含一个UpdatePanel,其中包含Asp.net 具有相同域页的iframe的Firefox跨源错误,asp.net,firefox,signalr,Asp.net,Firefox,Signalr,我正在一个小型ASP.NET网站上工作,该网站有一个简单的页面,其中包含一个UpdatePanel,其中包含 显示为模式弹出窗口的固定大小的div 一个按钮来关闭它 一个iframe,其源是来自同一域的普通页面 域是http://localhost:8080代码如下: <asp:UpdatePanel ID="Popup" UpdateMode="Conditional" runat="server"> <ContentTemplate> <div id
- 显示为模式弹出窗口的固定大小的div
- 一个按钮来关闭它
- 一个iframe,其源是来自同一域的普通页面
http://localhost:8080
代码如下:
<asp:UpdatePanel ID="Popup" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div id="Container" class="modal" runat="server">
<div>
<asp:LinkButton OnClick="ClosePopup" runat="server" />
<div>
<iframe src="http://localhost:8080/somepage" />
</div>
</div>
</div>
</ContentTemplate>
除打开和关闭弹出窗口外,不执行任何代码。消息出现后,似乎会触发ClosePopup事件,但这可能是由于某些VS2013延迟造成的。站点不使用信号器,但错误包含信号器引用
功能不受影响,但我想了解为什么会发生这种情况。这个错误只发生在Firefox(34)中。很明显,信号员参考是罪魁祸首,但为什么它会出现在那里呢?有人知道这是什么原因吗?是Visual Studio 2013中引入的一项功能,它使用SignalR提供一些简洁的开发功能
浏览器链接并不是试图连接到您的网站,而是试图与Visual Studio本身进行通信。除非您使用Visual Studio启动项目,否则不应出现此问题
这解释了为什么更改web.config以允许CORS对该问题没有影响。我会小心地普遍启用CORS,因为如果您不小心的话,这可能会使您面临XSS漏洞
应该解决这个问题。你甚至可以
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>