javascript XMLHTTPRequest在firefox中返回null
javascript XMLHTTPRequest returning null in firefox
我正在编写一个网站,该网站本应从外部网站获取一些XML并对其进行解析,但它给了我一个类型错误:xmlDoc为null。不知道出了什么问题,我想知道是否有人能帮忙。
这是代码:
编辑:添加更改
function loadXML()
{
var XMLHttpRequestObject = false;
if (window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
XMLHttpRequestObject.overrideMimeType("text/xml");
console.log("XML HTTP Request, xml override.");
}
else if (window.ActiveXObject) {
XMLHttpRequestObject = new
ActiveXObject("Microsoft.XMLHTTP");
console.log("ActiveXObject xml request.");
}
if(XMLHttpRequestObject) {
XMLHttpRequestObject.open("GET", xmlLink, true);
XMLHttpRequestObject.onreadystatechange = function() {
if (XMLHttpRequestObject.readyState == 4) {
// Load complete
var xmlDocument = XMLHttpRequestObject.responseXML;
parseXML(xmlDocument);
}
};
XMLHttpRequestObject.send(null);
}
}
function parseXML(xmlDoc){
console.log(xmlDoc);
var test1 = xmlDoc.getElementsByTagName('icon');
}
Firefox符合跨源资源共享(CORS)规范。除非有问题的外部网站明确允许*(所有来源),否则您需要遵循以下教程:https://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/
XMLHttpRequestObject.open("GET", xmlLink, true);
因此,这设置了一个异步请求,但实际上还没有发送。
var xmlDocument = XMLHttpRequestObject.responseXML;
这会要求文档,该文档是执行请求并将结果字符串解析为XML的结果。这当然还不存在,因为请求还没有发生。
你想要这样的东西:
XMLHttpRequestObject.open("GET", xmlLink, true);
XMLHttpRequestObject.onreadystatechange = function() {
if (XMLHttpRequestObject.readyState == 4) {
// Load complete
var xmlDocument = XMLHttpRequestObject.responseXML;
parseXML(xmlDocument);
}
};
XMLHttpRequestObject.send();
相关文章:
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- php函数的ajax html$_POST值返回null
- 是否可以 document.getElementsByTagName('head')[0] ever 返回 null
- Firebase:查询返回null
- 在浅层渲染的反应组件上,Enzyme为道具返回null
- jQuery Multiselect插件返回null长度(应为0?)
- 如何处理getElementById返回Null
- JavaScript中的RegExp返回null
- Javascript 中的 RegEx 返回 Null
- 加载时的getelementbyID返回null
- 谷歌脚本在第二次调用Gmail后返回null
- Indexeddb OpenCursor在特定键值上返回null
- Ajax响应返回null
- 有没有一种方法可以判断图像src是否在javascript内部返回null
- 当JS在Chrome控制台上正常工作时,Selenium JavaScript执行器返回null
- Auth$getUser返回null,即使用户已登录(AngularFire,Firebase)
- Mongoose JS findOne总是返回null
- 为什么我的ajax调用返回null
- 当与全局标志一起使用时,Javascript Regex在后续调用中返回null
- Regex以确定该值在JS中是否有效,返回null