只有当我尝试将一个文档中的元素添加到另一个文档时,我才会在 IE9 中获得 HIERARCHY_REQUEST_ERR (3)。我正在按如下方式创建我的文档:
var xmlDoc = document.implementation.createDocument("","root",null);
并尝试添加如下:
$(otherDoc).find("selector_for_nodes_I_want").each(function(){
$(xmlDoc).find("root").append($(this).remove());
});
Firefox 和 Chrome 对此很好,但 IE9 不喜欢它。这个想法是 xmlDoc 是 otherDoc 的过滤版本,我将其作为字符串存储在 sessionStorage 中。我希望以这种方式保存 XMLHTTPRequests。我不太喜欢先将 otherDoc 转换为字符串,然后通过 $.parseXML() 转换回来的选项。我希望有更好的选择,或者如果我认为这一切都错了,我也会听到这个论点。谢谢。
代替 OP 的答案,是否有人对为什么必须使用domParser()
或$.parseXML(jqXHR.responseText)
响应标头何时已经是xml 有适当的解释:Content-Type:text/xml; charset=utf-8
. 为什么 IE9 会猜测我想使用这种荒谬IXMLDOMDocument2
的实现来解析我的响应?