JSF ViewState修复了IE responseXML

时间:2016-03-02 23:33:05

标签: ajax internet-explorer jsf-2 xmlhttprequest omnifaces

我遇到一个问题,我在OmniFaces的JSF库中使用了ViewState修复:fixviewstate.js。问题是我们在我们的应用程序中遇到了奇怪的IE行为,在第二次AJAX请求到同一页面后,data.responseXML = {}。奇怪的是,responseText已正确设置。在那种情况下,viewState值=' - '。然后将此值提交给服务器,JSF抛出IndexOutOfBoundsException。

这仅在IE中发生,但在启用开发人员工具时则不会发生。我认为这可能与IE AJAX缓存问题有关,但是:

  • 这些是帖子请求
  • content-type已正确设置为text / xml
  • 缓存控制:设置无缓存标头

你能帮忙吗?

1 个答案:

答案 0 :(得分:4)

我终于开始工作了。虽然响应看起来像这样:

array.each do
  |a|
  a[2] =
  case a[2]
  when "Successful" then "green"
  when "Failed" then "red"
  end
end
IE上的

update.firstChild.nodeValue只返回部分文本 - 有时只返回“ - ”,有时只返回“-1644237968690251221”。这完全取决于浏览器如何将文本切片为文本节点。根据规范,它可以以任何方式做到这一点。 所以我们只需要调用update.textContent。