我正在尝试通过Javascript代码加载网页并使用XPath对其进行解析以获取某些元素的值。我编写的用于创建文档对象的代码会为每个URL重复{location:null}。代码如下:
var req = new XMLHttpRequest();
req.open('GET', 'https://www.someurl.com', false);
req.overrideMimeType('text/xml; charset=windows-1251'); // for Cyrillic
req.send(null);
if(req.status == 200) {
//console.log(req.responseText);
var xmlString = req.responseText;
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
console.log(JSON.stringify(xmlDoc)); // it outputs {"location": null}
}
请问我是否误服了
答案 0 :(得分:0)
这是由于XMLHttpRequest()
的异步行为所致。由于req.send(null)
是一个异步调用,并且事件处理程序将分别处理响应,因此您将获得null。
有关异步行为的更多信息,请参阅Asynchronous Javascript
基本上,您需要附加一个事件处理程序来处理XMLHttpRequest
的响应。
req.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// do your thing here
}
};
这是在您的req.send(null);