为了对我们的后端php代码进行函数调用,我们实现了一个叫做ActionProxy的东西:
function ActionProxy(action, input, callback){
$.post("ActionProxy.php?method="+action,
{ data: input},
function(data, textStatus, XMLHttpRequest){
//return data.ResponseWhatever
}
});
我们遇到的问题是,由于可变范围限制(我们假设),使用ActionProxy外部的数据是不可能的,设置
var res = data.ResponseWhatever
或
return data.ResponseWhatever
非常徒劳。如何最恰当地处理这些响应,以便调用actionproxy的函数可以访问响应值?
答案 0 :(得分:1)
您可以使用window.ResponseWhatever = data.ResponseWhatever
,但这不是最聪明的事情。你想要的是做这样的事情:
function ActionProxy(action, input, callback){
$.post("ActionProxy.php?method="+action, {data:input},
function(data, textStatus, xhr){callback(data);});
}
注意:我不是jQuery-guru,所以我可能错误地得到了一些jQuery部分,但重点是你要调用return data
而不是调用callback(data);
。
答案 1 :(得分:0)
好吧,我确实解决了Alxandr提供的解决方案。事实证明,如果我想要结果,我将不得不实现一个回调,但为了不关心结果我只用前两个参数调用ActionProxy并检查回调函数是否存在如下:
function ActionProxy(action, input, callback){
$.post("ActionProxy.php?method="+action, {data:input},
function(data, textStatus, xhr){
if(callback){
callback(data);
}
});
}
我希望在使用两个参数调用三参数函数时出错。哦,好吧 - javascript是一种奇怪的语言。 :)