向客户端呈现XMLHTTPRequest响应?

时间:2010-08-07 17:06:21

标签: javascript rest html5 xmlhttprequest

我正在使用XMLHTTPRequest伪造RESTful接口。响应对象从请求返回数据后,如何将其呈现给用户?例如,在PUT请求中,服务器实际上使用完整的HTML数据页面进行响应(在大多数情况下),并且我想将整个页面显示给客户端。知道怎么样?我确信那里有一个答案,但我缺乏JS知识让我陷入困境,可能是由于JS术语不佳。

请注意,我不太愿意使用现代的JS套件,如DOJO或JQuery。另外,我并不是真的在寻找类似Ajax的效果。事实上,一旦几个浏览器支持正确的HTML5规范表单方法(GET / POST / PUT / DELETE),我将倾销这个JS hack。

非常感谢任何帮助!

编辑:与他人交谈,提出了两个想法。一种是使用IFrame并将数据推入其中。另一个是重定向到"data:text/html,"+xhr.responseText,这是有效的,但对用户来说是丑陋的。 :/ ..我可能最终只是放弃并隐藏HTML表单中的方法参数(隐藏输入)并处理它的服务器端因为我还没有看到使用JS的好方法实现RESTful接口的客户端支持。

1 个答案:

答案 0 :(得分:0)

您可以打开弹出容器并将所有响应写入该容器,也可以使用javascript打开一个新窗口并将所有响应数据放到该窗口。

例如:

function writeConsole(content) {
  top.consoleRef=window.open('','myconsole',
  'width=350,height=250'
  +',menubar=0'
  +',toolbar=1'
  +',status=0'
  +',scrollbars=1'
  +',resizable=1')
  top.consoleRef.document.writeln(
  '<html><head><title>Console</title></head>'
  +'<body bgcolor=white onLoad="self.focus()">'
  +content
  +'</body></html>'  )
  top.consoleRef.document.close()
}