有人可以提供一些故障排除提示吗?对于非常小的数据结果子集,我的PostXML()
返回值为NULL
。这适用于99.9%的使用率。我认为失败的数据可能有特殊字符,但与类似的数据集相比,它的相同并传递好吗? File.asp中的oXMLDoc.xml在调试时包含一个有效的XML字符串,但在它回到我的JS调用时它包含null
。
在Microsoft.XMLHTTP
对象中看起来像有效的XML元素被破坏是否存在任何已知问题?
function PostXML(sXML)
{
var oHTTPPost = new ActiveXObject("Microsoft.XMLHTTP");
oHTTPPost.Open("POST","File.asp", false);
oHTTPPost.send(sXML);
// documentElement is null???
return oHTTPPost.responseXML.documentElement;
}
File.asp
<%
' oXMLDoc.xml contains valid XML here, but is NULL in the calling JS
Response.ContentType = "text/xml"
Response.Write oXMLDoc.xml
%>
答案 0 :(得分:1)
检查响应标头。内容类型必须为application/xml
。
XMLHttpRequest在当前的IE中可用。我建议仅将ActiveX用作后备。
您可以覆盖其上的内容mimetype:
xhr = new XMLHttpRequest();
xhr.overrideMimeType("application/xml");
...
这也可能在ActiveX对象上。但我不确定。
另一种可能性是使用DOMParser将接收到的字符串转换为Document实例。
答案 1 :(得分:0)
发现了这个问题。
使用IE Dev / Debugger,我在其中一个字符串属性中找到了xEFxBFxBF
。本产品使用MS SQL Server,即使复制/粘贴到Notepad ++中,查询输出也不会反映这些字符。我假设Ent Manager过滤掉不支持的字符... / =
感谢帮助人们!
答案 2 :(得分:-1)
哎哟人。
是否可以使用jQuery?
我知道的另一件事是,如果返回xml稍微偏离(格式不佳的xml,区分大小写,非合法字符),javascript将废弃返回值。
使用jQuery,您可以使用更好的调试选项来查看错误。