除了打印结果之外,执行Ajax请求(JS-> PHP)之后是否有更优雅的方式传递变量?
打印可能会有点混乱,并且在返回值方面也没有很大的灵活性(例如难以传递对象)。
另外,我在我的一个Ajax请求回调中打印了这个随机空间,我无法弄清楚它来自哪里。传递序列化变量或类似的东西不存在这个问题,对吗?
提前致谢!
答案 0 :(得分:0)
以{url:“”形式传递属性,方法:“”,数据:{...},回调:函数(){}}
在回调中你可以做很多事情,google“javascript closures”。
希望这有帮助。
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检索所有数据。