Javascript-Ajax 函数ajax(选项){ 选项={ 类型:options.type | |“POST”, url:options.url | |“”, 超时:options.timeout | | 5000, onComplete:options.onComplete | | function(){}, onError:options.onError | | function(){}, onSuccess:options.onSuccess | | function(){}, 数据:options.data | |“” }; if(XMLHttpRequest的类型==“未定义”){ XMLHttpRequest=函数(){ 请尝试{返回新的XMLHttpRequest();}捕获(e){} 尝试{returnnewActiveXObject(“Msxml2.XMLHTTP.6.0”);}catch(e){} 请尝试{返回新的ActiveXObject(“Msxml2.XMLHTTP.3.0”);}catch(e){} 尝试{returnnewActiveXObject(“Msxml2.XMLHTTP”);}catch(e){} 请尝试{返回新的ActiveXObject(“Microsoft.XMLHTTP”);}catch(e){} 返回null; }; } var xml=new XMLHttpRequest(); open(options.type、options.url、true); var timeoutLength=options.timeout; var requestDone=false; setTimeout(函数(){ requestDone=true; },超时长度); xml.onreadystatechange=函数(){ if(xml.readyState==4&&!requestDone){ if(httpSuccess(xml)){ onSuccess(httpData(xml,options.type)); }否则{ options.onError(); } options.onComplete(); xml=null; } }; xml.send(); 函数httpSuccess(r){ 试一试{ return(r.status>=200&&r.status=0&&typeof r.status==undefined; }捕获(e){ 返回false; } } 函数httpData(r.type){ var ct=r.getResponseHeader(“内容类型”); 变量数据=!type&&ct&&ct.indexOf(“xml”)>=0; data=type==“xml”| | data?r.responseXML:r.responseText; if(type==“script”)eval.call(窗口、数据); 返回数据; } } 函数序列化(a){ var s=[]; if(a.constructor==数组){ 对于(var i=0;i

Javascript-Ajax 函数ajax(选项){ 选项={ 类型:options.type | |“POST”, url:options.url | |“”, 超时:options.timeout | | 5000, onComplete:options.onComplete | | function(){}, onError:options.onError | | function(){}, onSuccess:options.onSuccess | | function(){}, 数据:options.data | |“” }; if(XMLHttpRequest的类型==“未定义”){ XMLHttpRequest=函数(){ 请尝试{返回新的XMLHttpRequest();}捕获(e){} 尝试{returnnewActiveXObject(“Msxml2.XMLHTTP.6.0”);}catch(e){} 请尝试{返回新的ActiveXObject(“Msxml2.XMLHTTP.3.0”);}catch(e){} 尝试{returnnewActiveXObject(“Msxml2.XMLHTTP”);}catch(e){} 请尝试{返回新的ActiveXObject(“Microsoft.XMLHTTP”);}catch(e){} 返回null; }; } var xml=new XMLHttpRequest(); open(options.type、options.url、true); var timeoutLength=options.timeout; var requestDone=false; setTimeout(函数(){ requestDone=true; },超时长度); xml.onreadystatechange=函数(){ if(xml.readyState==4&&!requestDone){ if(httpSuccess(xml)){ onSuccess(httpData(xml,options.type)); }否则{ options.onError(); } options.onComplete(); xml=null; } }; xml.send(); 函数httpSuccess(r){ 试一试{ return(r.status>=200&&r.status=0&&typeof r.status==undefined; }捕获(e){ 返回false; } } 函数httpData(r.type){ var ct=r.getResponseHeader(“内容类型”); 变量数据=!type&&ct&&ct.indexOf(“xml”)>=0; data=type==“xml”| | data?r.responseXML:r.responseText; if(type==“script”)eval.call(窗口、数据); 返回数据; } } 函数序列化(a){ var s=[]; if(a.constructor==数组){ 对于(var i=0;i,javascript,ajax,Javascript,Ajax,此代码不起作用。问题出在哪里?我认为您永远都不会找到这个问题的正确答案,因为几乎所有开发人员都在使用Javascript库来处理这个问题 你为什么不在这里做同样的事情,那会是一个更快的失败 如果您还不知道JQuery,请签出它:我认为您永远都不会找到这个问题的正确答案,因为几乎所有开发人员都在使用Javascript库来处理这个问题 你为什么不在这里做同样的事情,那会是一个更快的失败 如果您还不知道JQuery,请签出它:函数httpData(r.type){到函数httpData(r,type

此代码不起作用。问题出在哪里?

我认为您永远都不会找到这个问题的正确答案,因为几乎所有开发人员都在使用Javascript库来处理这个问题

你为什么不在这里做同样的事情,那会是一个更快的失败


如果您还不知道JQuery,请签出它:

我认为您永远都不会找到这个问题的正确答案,因为几乎所有开发人员都在使用Javascript库来处理这个问题

你为什么不在这里做同样的事情,那会是一个更快的失败


如果您还不知道JQuery,请签出它:

函数httpData(r.type){
函数httpData(r,type){
函数httpData(r.type){
函数httpData(r,type){
描述“不工作”请再详细一点。你有没有收到任何错误消息?这不是在所有浏览器中都有效还是只在一个浏览器中有效?你测试了哪些浏览器?你尝试了什么来发现问题?我可能输入了错误。我可以用什么软件来发现错误?对于firefox,有一个很棒的插件叫做“firebug”您可以使用请更新您的标题和问题,使其更具体。请描述“不起作用”请再详细一点。你有没有收到任何错误消息?这不是在所有浏览器中都有效还是只在一个浏览器中有效?你测试了哪些浏览器?你尝试了什么来发现问题?我可能输入了错误。我可以用什么软件来发现错误?对于firefox,有一个很棒的插件叫做“firebug”你可以使用Please更新你的标题和问题,使其更具体。也许写得更快。但是你可以下载更多的数据到客户端。因此,在某些情况下,纯JavaScript会更好,写得更快。但是你可以下载更多的数据到客户端。因此,在某些情况下,纯JavaScript会更好
function ajax(options) {
 options = {
  type: options.type || "POST",
  url: options.url || "",
  timeout: options.timeout || 5000,
  onComplete: options.onComplete || function(){},
  onError: options.onError || function(){},
  onSuccess: options.onSuccess || function(){},
  data: options.data || ""
 };
 if (typeof XMLHttpRequest == "undefined") {
  XMLHttpRequest = function(){
   try { return new XMLHttpRequest(); } catch(e) {}
   try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); } catch (e) {}
   try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); } catch (e) {}
   try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
   return null;
  };
 }
 var xml = new XMLHttpRequest();
 xml.open(options.type, options.url, true);
 var timeoutLength = options.timeout;
 var requestDone = false;
 setTimeout(function(){
  requestDone = true;
 }, timeoutLength);
 xml.onreadystatechange = function(){
  if (xml.readyState == 4 && !requestDone) {
   if (httpSuccess(xml)) {
    options.onSuccess(httpData(xml, options.type));
   } else {
    options.onError();
   }
   options.onComplete();
   xml = null;
  }
 };
 xml.send();
 function httpSuccess(r) {
  try {
   return (r.status >= 200 && r.status < 300) || r.status == 304 || navigator.userAgent.indexOf("Safari") >= 0 && typeof r.status == "undefined";
  } catch(e) {
   return false;
  }
 }
 function httpData(r.type) {
  var ct = r.getResponseHeader("content-type");
  var data = !type && ct && ct.indexOf("xml") >= 0;
  data = type == "xml" || data ? r.responseXML : r.responseText;
  if (type == "script") eval.call(window, data);
  return data;
 }
}
function serialize(a) {
 var s = [];
 if (a.constructor == Array) {
  for (var i = 0; i < a.length; i++) s.push(a[i].name + "=" + encodeURIComponent(a[i].value));
 } else {
  for (var j in a) s.push(j + "=" + encodeURIComponent(a[j]));
 }
 return s.join("&");
}