嗨,我这样做了一个xmlHttpRequest:
var xhr = new XMLHttpRequest();
var params = 'gbook_text=' + encodeURIComponent('sdfsdf');
xhr.open("POST", '/gbook/save/7697256.html', true)
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);
}
}
xhr.send(params);
我需要解析来自响应的一些数据,这只是一个网页 我需要通过dom方法解析它,如getElementById()。 我知道我可以这样写:
xhr.responseXML.getElementById('author')
但仅当服务器设置标题
时才有效Content-Type:text / xml
否则responseXML为null
那么我的选择是什么?
P.S:只有没有任何库的js。 P.P.S:浏览器要求:chrome,ff,ie8 +
编辑:好的选择,哪一个更好: 1)将xhr.responsetext解析为字符串 2)重定向到响应页面并解析它。怎么做,顺便说一下?
答案 0 :(得分:1)
如果我理解你的问题,你只能用文本回复你的回复,但是你想要将它作为HTML文档搜索,你可以尝试创建一个div并将html响应作为div的innerHTML。< / p>
var res = document.createElement( 'div' );
res.innerHTML = xhr.responseText;
res.querySelector("#ElementID")
答案 1 :(得分:0)
您是否尝试过设置responseType
和/或使用overrideMimeType
方法?
xhr.responseType = 'document';
xhr.overrideMimeType('text/xml');