在Ajax请求后将变量传递给回调

问题描述:

除了打印结果之外,在执行Ajax请求(JS-> PHP)之后是否还有一种更优雅的方式来传递变量?在Ajax请求后将变量传递给回调

打印可能会变得杂乱无章,并且在返回值方面也不会提供很大的灵活性(例如,难以传递对象)。

此外,我有这个随机空间是在我的一个Ajax请求回调中打印的,我无法弄清楚它来自哪里。传递序列化变量或类似的东西不会存在这个问题,对吧?

在此先感谢!在形式上

通属性{URL: “” 方法: “” 数据:{...},回调:函数(){}}

在回调,你可以做很多的东西,谷歌“JavaScript关闭”。

希望这会有所帮助。

var ajax=function(){ 
    try{ 
    var xml  =new XMLHttpRequest(); 
    var args  =arguments; 
    var context =this; 
    var multipart =""; 

    xml.open(args[0].method,args[0].url,true); 

    if(args[0].method.search(/post/i)!=-1){ 
     var boundary=Math.random().toString().substr(2); 
     xml.setRequestHeader("content-type","multipart/form-data; charset=utf-8; boundary="+boundary); 
     for(var key in args[0].data){ 
     multipart+="--"+boundary+"\r\ncontent-Disposition: form-data; name="+key+"\r\ncontent-type: application/octet-stream\r\n\r\n"+args[0].data[key]+"\r\n"; 
     } 
     multipart+="--"+boundary+"--\r\n"; 
    } 

    xml.onreadystatechange=function(){ 
     try{ 
     if(xml.readyState==4){ 
      context.txt=xml.responseText; 
      context.xml=xml.responseXML; 
      args[0].callback(); 
     } 
     } 
     catch(e){} 
    } 

    xml.send(multipart); 
    } 
    catch(e){} 
} 

如果你想找回响应您可以使用此:

var response={}; ajax.call(response,{...args...}) 

,您可以通过response.txt或response.xml检索所有数据。