Getting 0 as status
I have a simple HTML file that receives data from a server and outputs it:
<html>
<head>
<script type="text/javascript">
var xmlhttp = new XMLHttpRequest();
function startRequest() {
xmlhttp.onreadystatechange = handleStateChange;
xmlhttp.open("GET", "http://new-host-2.home/test.html", true);
xmlhttp.send(null);
}
function handleStateChange() {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
alert("The server replied with: ", xmlhttp.responseText);
}
else {
alert(xmlhttp.status);
}
}
}
</script>
</head>
<body>
<form>
<input type="button" value="Woooo" onclick="startRequest()"/>
</form>
</body>
</html>
The file that is on the server, test.html, looks like this:
<h1>Data received!</h1>
I continue to get 0 as status, despite the fact that in the console it says that everything is in order and gives the status 200. When I change if (xmlhttp.status == 200)to if (xmlhttp.status == 0), it simply displays The server replied with:. Why is this? Am I ruining something?
EDIT . It may be my server, I will switch to another. Headings may be helpful:
Response Headers
Accept-Ranges bytes
Connection Keep-Alive
Content-Length 13
Content-Type text/html
Date Sat, 09 Jun 2012 14:17:11 GMT
Etag "267749b-d-4c20a6d0ef180"
Keep-Alive timeout=15, max=100
Last-Modified Sat, 09 Jun 2012 13:52:22 GMT
Server Apache/2.2.19 (Unix) DAV/2
Request Headers
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Connection keep-alive
Host new-host-2.home
Origin null
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0
alert function accepts only one parameter, you pass 2.
Take a picture:
var xmlhttp = new XMLHttpRequest();
function startRequest() {
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState==4)
{
if(xmlhttp.status==200)
alert("The server replied with: " + xmlhttp.responseText);
else
alert(xmlhttp.status);
}
}
xmlhttp.open("GET", "http://new-host-2.home/test.html", true);
xmlhttp.send();
}
Safari, , . , Firefox , - .
var xmlhttp = new XMLHttpRequest();
function startRequest() {
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState==4)
{
if(xmlhttp.status==200)
alert("The server replied with: " + xmlhttp.responseText);
else
alert(xmlhttp.status);
}
}
xmlhttp.open("GET", "/test.html", true);
xmlhttp.send();
}
, . -, ,
1) . , . , www., . - - URL- AJAX.xmlhttp.open("GET", "/test.html"); .
2) . , , , ? , , , . Btw XMLHttpRequest , , , . startRequest.
:
function handleStateChange(e)
{
var xmlhttp = e.target;
if (xmlhttp.readyState == 4)
{
if (xmlhttp.status == 200)
alert("The server replied with: " + xmlhttp.responseText);
else
alert(xmlhttp.status);
}
}
AJAX- ( , jQuery), ( ), , :
function startRequest(url, callback)
{
var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.onreadystatechange = function(e)
{
if (xmlhttp.readyState == 4 && xmlhttp.status >= 200 && xmlhttp.status < 300)
callback(xmlhttp.responseText);
};
xmlhttp.open("GET", url);
xmlhttp.send(null);
}
startRequest("/test.html", function(response) {alert("The server replied with: " + response);});