I’ve spent hours on this stupid error, so any help would be appreciated!
I’m using Jquery to request xml from a python file hosted on google appengine. I’m then trying to process the xml.
Here’s the response to the post request obtained from firebug:
<?xml version="1.0" encoding="ISO-8859-1"?><building key='agdhcHRydXNochALEglCdWlsZGluZ3MY3x4M' bldname='test'></building>
Status: 200 OK
Cache-Control: no-cache
Content-Type: application/xml
Content-Length: 0
And here’s the javascript that handles the data:
jQuery.post(toLoad,formInput,function(data){
alert(data.getElementsByTagName("building"));
})
Here’s the error I get from firebug:
data.getElementsByTagName is not a function
anonymous("<?xml version="1.0" encoding="ISO-8859-1"?><building key='agdhcHRydXNochALEglCdWlsZGluZ3MY4B4M' bldname='test'></building>\nStatus: 200 OK\r\nCache-Control: no-cache\r\nContent-Type: application/xml\r\nContent-Length: 0\r\n\r\n")viewBuilding.js (line 120)
I()jquery.min.js (line 19)
anonymous(6)jquery.min.js (line 19)
[Break on this error] alert(data.getElementsByTagName("building"));\n
I’ve used that particular bit of javascript in order parts of the site to process xml, so my gut tells me that the javascript is correct, maybe the format of the data is wrong? I’m stuck. :/
Thanks!
Try to force jQuery to recognize the returned data as xml by using
Btw. what looks suspicious to me is the
Content-Length: 0header.Based on your comment I conclude that the page which produces your xml is bogus. It first outputs the xml and after that some http-headers follow as data. Which of course can’t be valid xml. Thus jQuery correctly determines the returned data to be of format text.
You must output all headers before you output a single line of xml.