2011-05-10 62 views
1

爲什麼在這個簡單的代碼xmlHttp.status返回404爲未找到?ajax XMLHttpRequest.status返回意外的值

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ajax.aspx.cs" Inherits="ajax" %> 
<!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 runat="server"> 
<title></title> 
<script type="text/javascript"> 
    var xmlHttp; 
    function createXMLHttpRequest() { 
     if (window.ActiveXObject) { 
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     else if (window.XMLHttpRequest) { 
      xmlHttp = new XMLHttpRequest(); 
     } 
    } 
    function startRequest() { 
     createXMLHttpRequest(); 
     xmlHttp.onreadystatechange = handleStateChange; 
     xmlHttp.open("GET", "simpleResponse.xml", true); 
     xmlHttp.send(null); 
    } 
    function handleStateChange() { 
     if (xmlHttp.readyState == 4) { 
      alert(xmlHttp.status); 
      if (xmlHttp.status == 200) { 
       alert("The server replied with: " + xmlHttp.responseText); 
      } 
     } 
    } 
</script> 
</head> 
<body> 
<form action="#"> 
<input type="button" value="Start Basic Asynchronous Request" onclick="startRequest();" /> 
</form> 
</body> 
</html> 

回答

0

404是文件未找到。所以,你請求的URL不可用。檢查是否可用simpleResponse.xml?如果是,請嘗試使用完整網址:http://blablabla.com/simpleResponse.xml

0

檢查onLoad掛鉤的狀態,如此。

fileRequest.onload = function(e) { 
    // Check the status to make sure there isnt a 404 etc 
    switch(this.status){ 
    case 400, 404: 
     // do 404 stuff 
     break; 
    default: 
     break; 
    } 
    } 
};