2010-09-04 94 views
0

除了打印結果之外,在執行Ajax請求(JS-> PHP)之後是否還有一種更優雅的方式來傳遞變量?在Ajax請求後將變量傳遞給回調

打印可能會變得雜亂無章,並且在返回值方面也不會提供很大的靈活性(例如,難以傳遞對象)。

此外,我有這個隨機空間是在我的一個Ajax請求回調中打印的,我無法弄清楚它來自哪裏。傳遞序列化變量或類似的東西不會存在這個問題,對吧?

在此先感謝!在形式上

回答

0

通屬性{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檢索所有數據。