在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检索所有数据。