我们的服务通过HTTPS运行,我们目前正在尝试在其中运行已编译的GWT应用程序,只有客户端,没有RPC:s。
它包含在IFRAME中,似乎是推荐的(例如:在HTTPS和HTTP标题下为http://developerlife.com/tutorials/?p=231)。
在GWT-app中执行某些操作时,它会生成一个不安全的项目警告。
http://bagonca.com/insecure_item.png
您可能会问自己为什么我不使用一些漂亮的Firefox插件来查看http可能会有什么请求。或者为什么我出于同样的原因不在Internet Explorer中使用HTTPWatch。我有。我无处可寻找任何不安全的请求。
另一方面,我读到的是Internet Explorer在没有设置src属性的情况下为iframe抛出此警告。对于动态填充的任何iframe,可能的修复方法是使用src =“javascript:false”。
正如我所说,整个应用程序都是通过IFRAME包含的,在其中GWT本身会生成一个隐藏的IFRAME,如下所示。
<iframe tabIndex="-1" id="gwt-app" src="javascript:''" style="border-bottom: medium none; position: absolute; border-left: medium none; width: 0px; height: 0px; border-top: medium none; border-right: medium none;">
我尝试将上面的src属性硬编码到实际存在的空白页面,并在同一域上使用HTTPS调用。我试过javascript:false;做法。没运气。该应用程序就像一个魅力,但IE抛出无用的,虚假的警告。
当我在应用程序中执行某些操作时,警告会出现,而不是在加载时。实际上在http://code.google.com/p/gwt-calendar/组件中拖放约会时。
之前有没有人纠结过类似的问题?有线索吗?
答案 0 :(得分:2)
任何线索?
我不确定在这种情况下,但是我在大约一年前做过iframes(在一个有点类似的话题上)的一些实验。我认为,gwt-calendar尝试通过javascipt的parent
引用与主页进行通信。主机页面未从同一来源(包括协议)加载时,AFAIR是不允许的。
答案 1 :(得分:2)
其他Javascript片段也可能导致问题。请参阅:
http://blog.httpwatch.com/2009/09/17/even-more-problems-with-the-ie-8-mixed-content-warning/
另外,请查看以下评论:
一些评论者也发现并修复了警告的其他原因。
答案 2 :(得分:0)
如果您的应用程序在 HTTPS 上运行并且正在通过纯 HTTP 获取图像或其他资源,则会发生这种情况。检查您是否将图像或css路径硬编码为http://。
例如,如果您的应用程序在https://example.com
运行并且您希望加载图片foo.jpg
,那么您应该使用的html是:
<img src="https://example.com/images/foo.jpg"/>
或(理想情况下)
<img src="images/foo.jpg"/>
而非
<img src="http://example.com/images/foo.jpg"/>
请注意,第三个示例通过 http 而不是 https 获取foo.jpg图像。因此,它会引起你所面临的问题。
要避免此类问题,最佳做法是使用ImageResources和相对网址。