我在函数参数中传递了json obj。 Json包含用户ID,密码,成功调用和错误调用。
我想通过ajax服务对用户进行身份验证。如果服务返回成功,则访问successcallback函数或返回错误,然后访问errorcallback函数。
JSON Obj : Json_Obj = { "UserId" : "uid",
"Password" : "pwd",
"Success_CB" : "successcallback()",
"Failure_CB" : "errorcallback()",
};
我能够解析Json_Obj
Authentication = function(data) {
var json_data = $.parseJSON(data);
$.ajax({
type: "GET",
.
.
success:function(data){
json_data.Success_CB; // Unable to Execute the success call back function.
},
error:function(xhr,err){
json_data.Failure_CB
}
});
}
// Call Back Functions
successcallback(){
alert("Success");
}
errorcallback(){
alert("Error");
}
我无法访问/执行回调函数。
请帮我解决这个问题..
答案 0 :(得分:1)
json_data.Success_CB
是一个字符串,而不是函数。
你可以这样做:
success:function(data){
eval(json_data.Success_CB+'();');
}
但是,您可能更愿意使用开关,而不是评估任何收到的代码。
当然,如果要调用的函数与精确数据无关,您可以直接执行
success: successcallback
答案 1 :(得分:0)
你的意思是这样吗?
Authentication = function(data) {
var json_data = $.parseJSON(data);
$.ajax({
type: "GET",
success:function(data){
successcallback();
},
error:function(xhr,err){
errorcallback();
}
});
}
// Call Back Functions
successcallback(){
alert("Success");
}
errorcallback(){
alert("Error");
}