代码之家  ›  专栏  ›  技术社区  ›  Tinus

iframe与normal/ajax get请求

  •  0
  • Tinus  · 技术社区  · 16 年前

    我有一个页面,它使用类似于以下的iframe从几个ibm websphere服务器收集环境状态:

    <iframe src="http://server:9060/ibm/console/status?text=true&amp;type=server&amp;node=NODE&amp;name=ServerName_server_NODE"></iframe>

    它很高兴地打印出“已启动”或“不可用”等内容,但如果我在普通浏览器中加载相同的url,有时它会工作,有时不会?其中一些显示登录页面,而其他只是返回http代码500。

    那么通过iframe加载页面和通过浏览器加载页面有什么区别呢?

    我可以告诉你,iFrAME解决方案的工作,无论我正在做什么机器,所以我不相信它与用户谁打开页面。在您询问之前,为什么不保留有效的解决方案呢?这是因为使用iframes打开页面要花很长时间,而使用ajax请求所有内容的页面则要花很长时间。

    更新: 使用jQuery来执行Ajax调用,返回在正常浏览器中无法看到的服务器的“错误”和“未定义”。

    3 回复  |  直到 14 年前
        1
  •  0
  •   Chris Passas    16 年前

    一个区别是iframe必须呈现视图,而xhr则不能。

        2
  •  0
  •   Ian Elliott    16 年前

    iframe与使用浏览器打开基本相同。在这两种情况下都使用浏览器凭据,因此两者之间没有区别。

    其次,在iframe中加载某些内容所需的时间应与通过xhr请求它所需的时间相同,因为在这两种情况下,浏览器都会发出http请求并等待响应。尽管我要补充的是,iframe将需要一些时间才能将内容呈现到页面上。但是,如果您打算用ajax来显示它,iframe/xhr解决方案或多或少是相同的。

        3
  •  0
  •   Silent Warrior    16 年前

    在ajax请求的情况下,会出现同源策略(它限制跨域调用)。所以不能使用XHR进行跨域调用。另一种方法是在您的页面中嵌入Flex SWF文件作为ActiveX控件,通过JavaScript进行Flex调用,然后Flex负责跨域调用(Flex可以在目标域允许跨域使用交叉域.xml),并再次使用JavaScript渲染结果。

    推荐文章