I'd like to get data from ajax response, but this code not working:
var request = new XMLHttpRequest();
request.open("GET", "http://localhost/test/test.php", true);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4) {
alert(request.responseText.document.getElementById('div1').innerHTML);
}
}
The console shows this error:
Uncaught TypeError: Cannot read property 'getElementById' of undefined.
Any ideas what's causing this?
I'd like to get data from ajax response, but this code not working:
var request = new XMLHttpRequest();
request.open("GET", "http://localhost/test/test.php", true);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4) {
alert(request.responseText.document.getElementById('div1').innerHTML);
}
}
The console shows this error:
Uncaught TypeError: Cannot read property 'getElementById' of undefined.
Any ideas what's causing this?
Share Improve this question edited Aug 31, 2016 at 16:00 Mike 3,9503 gold badges17 silver badges24 bronze badges asked Aug 31, 2016 at 15:29 Star089Star089 472 silver badges13 bronze badges2 Answers
Reset to default 8You can use DOMParser
to convert html
string to document fragment
var request = new XMLHttpRequest();
request.open("GET", "http://localhost/test/test.php", true);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var parser = new DOMParser();
var doc = parser.parseFromString(request.responseText, "text/html");
var elem = doc.getElementById("div1");
alert(elem.innerHTML);
}
}
alternatively, you can set the responseType
to document
var request = new XMLHttpRequest();
request.open("GET", "file.html", true);
request.responseType = "document";
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4) {
var doc = request.response;
var elem = doc.getElementById("div1");
alert(elem.innerHTML);
}
}
plnkr http://plnkr.co/edit/lkpveDD31fYY1gmflK9W?p=preview
Request object isn't a DOM element nor does it have the methods that the native DOM has.
Fix your code with:
var request = new XMLHttpRequest();
request.open("GET", "http://localhost/test/test.php", true);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState == 4) {
alert(request.responseText);
}
}