XMLhttprequest stopping and getting access denied
I am having some security problems and need some help..
a little backstory.. I had the script running fine on my computer. . transfered them to my laptop, and the script still found and parses the xml like it should. however, i zipped them and sent it back to myself and now all the values come back undefined. .
here is the script. .
fairly straight forward and simple.. but values of x.textContent is coming back undefined.. i have all files (html, js, and xml) in the same folder on my desktop. they worked perfectly fine before when they were just on my desktop.. but now that won't even work. :/ help please
var xmlDoc = loadXMLDoc("nhl_standings_xml.xml");
var x = xmlDoc.getElementsByTagName("nhlall");
May I suggest that after the line: you include the lines:
Sometimes it is the case that that the responseXML will be empty, or undefined, but the information will be in the reponseText.
alert(xhttp.readyState + "---" + xhttp.status); //its its anything other than '4---200' this will give you the key to the error
alert("the xml data is: " + xhttp.responseXML); //has it sent any XML data at all
alert("the response text is: " + xhttp.responseText); did it send any text back
PS-- Sorry for the hasty response--I was looking at the content of your post rather than the title. Did you indeed get an xhttp.status code that indicated that access was denied?
Last edited by Tcobb; 02-01-2011 at 03:21 PM.
hello, it is very smart to test it in this way, but i received no alerts in the script.
it is very strange indeed. and my brain is about to bleed from picking over it for two days. ;p
IE and opera(as well as chrome and i assume firefox) are all giving me security errors at the line i stated above (when i pull up dev tools debugger).. a quick search on google and i pull up that i am crossing domains, yet all my files are local and in the same directory. :?
would setting up apache and testing it help at all do you think? it was all working perfectly before i zipped them
disregard my last message please:
i got the following results
2 the xml data is: [object XMLDocument]
3 the response text is:
Usually when the 'status' equals zero this means it came from a local file rather than being processed by a server.
And yes--it might help to fire up Apache on your box and run it through there.
Another avenue to pursue is to compare the files--the original ones and the ones that were produced from having their zipped versions unzipped.
the files are coming locally - is there something wrong with that? why did it work fine a few days ago on all browsers without touching code? is it possible the browsers updated since then? sorry for so many question.. so frustrated.. should i somehow process them through a local server instead? (i will try apache here in a bit -- see if anything works out)
interestingly, what i said beforehand isn't true. everything is working as it should in firefox, but not chrome, ie, or opera ..
AJAX requests (same as any classical submit) will not work locally, unless you install a server (like Apache or IIS) on your computer and run your files under that server.
Originally Posted by shawnku
You'll need a server to run PHP etc, but I have no trouble running AJAX requests under the file:/// protocol.
Originally Posted by Kor
This routine displays its own source:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
<title>Load Own Source File</title>
<textarea id='ta1' cols='60' rows='20'></textarea>
/* <![CDATA[ */
req = new XMLHttpRequest();
req.onreadystatechange = function()
if( this.readyState == 4 && this.status == ( /$http/.test( location.href ) ? 200 : 0 ) )
document.getElementById( 'ta1' ).value = this.responseText;
req.open( "GET", location.href, true );
req.send( null );
/* ]]> */
Well, yes. Some browsers accept request even when the status of the document is 0, not 200. But somehow it looks safer to test locally under an installed server.
Now, back to the main problem:
I bet you are using an old version of IE on your laptop. Either upgrade your IE, or better use alternatively the innerText IE property. Rough code:
Originally Posted by shawnku
all browsers are runnign thsi script fine but IE8.. i ahve them all hosted locally on apache
And what kind of xhttp.readyState and xhttp.status messages are you getting on IE8?
just tried oth of them and interestingly it's giving me a readystate of 4, and a status of 200 on all browser's including ie. doesnt that mean it should be working loading and executing properly?
i have been reading that IE doesnt really like .textContent , which i am using .. is there any good alternatives to it?
I don't really know what '.textContent' is--what are the values of your xhttp.responseText and xhttp.responseXML? That's the key. Your original problem was getting the data to begin with. That now apparently is solved.
What you do with the data is now up to you.
it seems you are right.
the value in order as you listed them are '4' and '200' .. which seems like it's normal..
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Tags for this Thread