0

I'm learning javascript for a new project. I have seen many tutorials about javascript and xmlhttprequest, but when I try to run decode it won't work. can somebody help me.

here is my html+javascript code:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>xml reader</title>
</head>
<body>
<script type="text/javascript">
 var xmlhttp;
 var xmldoc;
 if(window.XMLHttpRequest){
 xmlhttp = new XMLHttpRequest();
 }else
 {// code for IE6, IE5
 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
 xmlhttp.onreadystatechange=stateChange();
 xmlhttp.open("GET","info.xml",true);
 xmlhttp.send(null);
 xmldoc = xmlhttp.responceXML.documentElement;
 document.write(xmlhttp.getElementsByTagName("vakken")[0].childNodes[0].nodeValue);
</script>
</body>
</html>

here is my xml file:

<?xml version="1.0" encoding="utf-8"?>
<info>
 <name>test</name>
 <nummber>10</nummber>
</info>

mhatch
4,6376 gold badges43 silver badges67 bronze badges
asked Nov 10, 2010 at 6:43
0

4 Answers 4

1

maybe you should use xmlhttp.onreadystatechange and set it to a real function. the function stateChange() does not exist in the above example.

a good working example that does almost the same thing as you do is here: http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

answered Nov 10, 2010 at 6:58
Sign up to request clarification or add additional context in comments.

Comments

1

You have a ReferenceError in your JavaScript that prevents it from executing completely. "stateChange" is undefined. You need to define the stateChange function.

Also it looks like "response" is spelled wrong (responce).

Please go through this tutorial from W3Schools: http://www.w3schools.com/XML/xml_http.asp

You're very close so use W3Schools as a resource to fix up some other problems in your code.

answered Nov 10, 2010 at 6:54

Comments

1

stateChange() that you call onreadystatechange is not defined - add a function named stateChange that will be called once the response returns.

An example of such a function:

function stateChange() {
 if(xmlhttp.readyState == 4){
 xmldoc = xmlhttp.responseXML.documentElement;
 document.write(xmlhttp.getElementsByTagName("vakken")[0].childNodes[0].nodeValue);
 }
}

You must remember that AJAX is asynchronous - the response must be handled separately at the time it returns - hence the readystatechanged event usage...
Remove the two lines after sending the request from your original code (they are in the stateChange function).

answered Nov 10, 2010 at 7:22

Comments

1

Are you don't receiving an answer in the Request or may it be the case, that you get an answer but it's not written into your dom? Lately I had the problem, that document.write wouldn't work in one of my pages. I found out, that document.write is not allowed in XHTML-based pages (My page was XHTML 1.1, yours is XHTML 1.0). So this is just a guess. You could test this with the firebug-extension for firefox. Althought all common browsers respect, that document.write is not allowed and throw a error-message, IE does however support document.write in any case...

answered Nov 10, 2010 at 8:02

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.