我有一个页面,使用与此类似的iframe从几个IBM WebSphere服务器收集环境状态:
<iframe src="http://server:9060/ibm/console/status?text=true&type=server&node=NODE&name=ServerName_server_NODE"></iframe>
并且很高兴地打印出“已启动”或“不可用”等。但是,如果我在普通浏览器中加载相同的URL,有时它会起作用,有时它不会?其中一些是显示登录页面,而其他人只是返回HTTP代码500。
那么通过iframe加载页面与浏览器之间的区别是什么?
我可以告诉你,无论我在哪台机器上运行iframe解决方案,所以我不相信它与打开页面的用户有任何关系。在你问之前,为什么不保持有效的解决方案,因为它需要很长时间才能打开带有iframes的页面,而不是通过ajax请求所有内容的页面。
更新:使用jQuery执行ajax调用会为普通浏览器中看不到的服务器返回“error”和“undefined”。
答案 0 :(得分:0)
iframe与使用浏览器打开时基本相同。在这两种情况下都使用浏览器凭证,因此两者之间没有区别。
其次,在iframe中加载内容应该花费与通过XHR请求相同的时间,因为在这两种情况下,浏览器都会发出HTTP请求并等待响应。虽然我应该添加iframe将花费时间将内容呈现到页面上。但是,如果你计划用ajax显示它,iframe / xhr解决方案或多或少会相同。
答案 1 :(得分:0)
一个区别是iframe必须渲染视图,而XHR则不会。
答案 2 :(得分:0)
在ajax请求的情况下,相同的原始策略(限制跨域调用)进入图片。因此,您无法使用xhr进行跨域调用。替代方法是在您的页面中将flex swf文件作为activex控件嵌入并通过javascript进行flex调用然后flex负责进行跨域调用(如果目标域允许使用crossdomain.xml进行跨域调用,则可以使用flex)并使用javascript再次呈现结果