是否可以在源中使用iframe和localhost地址?

时间:2012-09-28 11:57:15

标签: asp.net html browser

我的HTML标记非常简单

....
<iframe width="800" height="800" src="http://localhost:69345/Handler.ashx"/>
...

但此页面已被我使用的所有浏览器屏蔽。 我想知道这个问题有没有解决办法? 当然,我完全理解,如果我的页面将在生产中部署,那么将没有问题。但是,如果在本地阻止iframe,我该如何进行任何测试?

先谢谢你

6 个答案:

答案 0 :(得分:5)

不要使用绝对网址

使用亲戚

....
<iframe width="800" height="800" src="Handler.ashx"/>
... 

答案 1 :(得分:3)

尝试使用机器的实际IP地址(通常为127.0.0.1)...

<iframe width="800" height="800" src="http://127.0.0.1:69345/Handler.ashx"/>

不要忘记端口号!

P.S:在Mac OS上,您可以运行类似ifconfig | grep inetifconfig | grep 127的内容来识别您的网络IP地址。

答案 2 :(得分:2)

Chrome浏览器在iframe中显示以下文本时:

127.0 0.1 refused to connect

这是因为服务器用X-Frame-Options header响应了DENY

解决方案是更改服务器配置,以便删除该标头或将其设置为SAMEORIGIN

例如,如果您使用的是Django,则可以更改X_FRAME_OPTIONS setting或用@xframe_options_sameorigin or @xframe_options_exempt装饰视图。

答案 3 :(得分:0)

只需尝试使用相对路径

<iframe width="800" height="800" src="Handler.ashx"/>

答案 4 :(得分:0)

这里有一些问题。第一个是请求期望在端口69345上提供(它看起来非常像调试器自动配置的端口)。该端口目前是否正在处理请求?你可以在没有iframe的情况下访问那个页面吗?在生产中部署页面时,绝对保证此URL会中断,因为localhost始终解析为相对于客户端而不是服务器的127.0.0.1。您需要查看实际地址是或需要的。正如一些海报在我输入时回答的那样,你的问题可能就像使用相对网址一样简单。如果这不能解决您的问题,则需要调查将为此处理程序提供服务的实际端口和服务器名称。

答案 5 :(得分:-1)

相对路径不起作用,因为他使用的是另一个端口。