javascript - 基本 xmlHttp 问题

标签 javascript ajax xmlhttprequest

我的 javascript 代码调用 php.ini 时遇到一些问题。有人看到下面的代码有错误吗?我发誓我在网站的另一部分使用了这样的代码......

var xmlHttp = createXmlHttpRequestObject();
var favSongArray = [];

function createXmlHttpRequestObject(){
  var xmlHttp;

  try{
    xmlHttp = new XMLHttpRequest();
  }
  catch(e){
   var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                "MSXML2.XMLHTTP.5.0",
                                "MSXML2.XMLHTTP.4.0",
                                "MSXML2.XMLHTTP.3.0",
                                "MSXML2.XMLHTTP",
                                "Microsoft.XMLHTTP");

  for(var i = 0; i < XmlHttpVersions.length && !xmlHttp; i++){
    try{
      xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
    }
    catch(e){}
  }
}

if(!xmlHttp){
  alert("Error creating the XMLHttpRequest object.");
}
else{
  return xmlHttp;
}
}


function process(){

  if(xmlHttp){
    alert("sever is available");
    //if yes try
    try{

      xmlHttp.open("GET", "php/getUntimed.php", true);
      xmlHttp.onreadystatechange = function(){handleRequestStateChange();};
      alert("attempted to call p_handleRequestStateChange_test");
      xmlHttp.send(null);
    }//end try
    catch(e){
      alert("Can't connect to server: \n" + e.toString());
    }//end catch
  }//end if xmlHHttp

}//end function

function handleRequestStateChange(){
  if(xmlHttp.readyState == 4){

  if(xmlHttp.status == 200){
   try{
     u_handleServerResponse();
   }//end try
   catch(e){
     alert("Error reading the response: " +e.toString());
   }//end catch
 }//end if
 else{
   alert("There was a problem retriving the data:\n" + xmlHttp.statusText);
 }//end else
 }//end if
 }//end function

 function u_handleServerResponse(){
 //need to clear array each time
 var response = xmlHttp.responseText;

favSongArray = response.split("+");
alert("made it here");
//getFlashMovie("trackTimer").trackTimer(favSongArray[0]);
}

process() 是从 onSubmit 触发器调用的。我的 xmlHttp.status 一直为零。这对任何人都有意义吗?谢谢

最佳答案

status == 0 通常意味着它被中止 - 通过按 ESC 或更改当前地址。

或者,由于您使用的是全局 xmlHttp,您可能会调用 open 和/或在最后一个请求完成之前发送。不完全确定是哪一个,但其中一个是通过调用 abort 开始的。

关于javascript - 基本 xmlHttp 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1314938/

相关文章:

javascript - jasmine.js expect() 在异步回调中不起作用

ajax - 在fancyBox AJAX 表单提交后单击返回

javascript - 使用 pastebin API 发出简单的 POST 请求

javascript - 在 React/Typescript 中处理多个开关控件的函数

javascript - json 响应中的日期格式不起作用

javascript - 分配服务属性的值(Angularjs)

javascript - 如何在页面重新加载jquery之前调用函数

javascript - FormData 构造函数在 Edge 中丢失文本区域值

javascript - 通过 XmlHttpRequest 将数据从 JS 传递到 PHP

javascript - 将变量绑定(bind)到 Controller 内的模型