Solved

XmlHTTPRequest status returns 0

Posted on 2009-06-29
2
2,979 Views
Last Modified: 2013-11-19
I am at a loss for why my code is not working. When I launch the attached html object I get the status code 0 instead of the expected 200. Does anyone know why I am getting this status? I have attached the xml and text files. Change Some.txt to Some.xml
<?xml version="1.0" encoding="UTF-8"?><html xmlns="http://www.w3.irg/1999/xhtml"><head id="header"><title id="title">This is a test</title><script type="text/javascript">window.onload = initAll;
var xhr = false;
var reqerr = "";
 
function initAll()
{
	document.getElementById("textRequest").onclick = getNewFile;
	document.getElementById("xmlRequest").onclick = getNewFile;
}
 
function getNewFile()
{
	makeRequest(this.href);
	return false; //do not display this url which is a file
}
 
function makeRequest(url)
{
	alert("url is " + url);
	if (window.XMLHttpRequest)
	{
		try
		{
			xhr = new XMLHttpRequest();
		}
		catch (e)
		{
			alert("no xml http request");
		}
	}
	else
	{
		if (window.ActiveXObject)
		{
			try
			{
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e)
			{
				try
				{
					xhr = new ActiveXObject("Msxml2.XMLHTTP");
				}
				catch (e)
				{
					alert("No msxml2");
				}
			}
		}
	}
 
	if (xhr)
	{
		xhr.onreadystatechange = showContents;
		xhr.open("GET", url, true);
		xhr.send(null);
	}
	else
	{
		document.getElementById("updateArea").innerHTML = "Sorry, but I couldn't create an XMLHttpReqest";
	}
}
 
function showContents()
{
	if (xhr.readyState == 4)
	{
		if (xhr.status == 200)
		{
			if (xhr.responseXML && xhr.responseXML.contentType=="text/xml")
			{
				var outMsg = xhr.responseXML.getElementsByTagName("choices")[0].textContent;
			}
			else
			{
				var outMsg = xhr.responseText;
			}
		}
		else
		{
			var outMsg = "There was a problem with the request " + xhr.status + ": " + xhr.statusText;
		}
		document.getElementById("updateArea").innerHTML = outMsg;
	}
}
</script></head><body id="public"><h1 id="body.h1">This is the body</h1><p><a id="textRequest" href="sometext.txt">Reqeust a text file</a><br/><a id="xmlRequest" href="Some.xml">Request an xml file</a></p><div id="updateArea">&amp;nbsp;</div></body></html>

Open in new window

Some.txt
sometext.txt
0
Comment
Question by:atxtechie
2 Comments
 
LVL 41

Expert Comment

by:HonorGod
ID: 24740694
What is the value of readyState when status == 0?
0
 
LVL 5

Accepted Solution

by:
Opalelement earned 125 total points
ID: 24760906
The status will be 0 until a request is sent. After that the status code will be 200. Since it is the readystatechange event, it should be 200... However if it takes a second it may not get there.

What you can do is replace:

if (xhr.status == 200)

with:

if (xhr.status == 200 || xhr.status == 0)

Once it changes it shouldn't be possible for it to go back to 0, so it will still be okay for either one to be valid.
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Unknown server tag 'ajaxToolkit:toolkitscripmanager' 6 49
Performance  Html.BeginForm vs jQuery 3 67
Randomize in Owl Carousel v1.3.2 6 68
asp Google Map 2 32
I found this questions asking how to do this in many different forums, so I will describe here how to implement a solution using PHP and AJAX. The logical flow for the problem should be: Write an event handler for the first drop down box to get …
Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL (http://www.experts-exchange.com/articles/201/Handling-Date-and-Time-in-PHP-and-MySQL.html) several years ago, it seemed like now was a good time to updat…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question