Im working with jQuery. I have an app that makes ajax requests to server that responds with JSON.
in some cases the response from the server will indicate the name of a JS function to be called
{"responseType":"callback", "callback":"STUFF.TestCallback","callbackData":"this is in the callback"}
If the responseType is “callback” as above the JSON is passed to a function to handle this response type. (the var “response” contains the JSON above)
STUFF.callback = function(response){
if(typeof response.callback =='function'){
console.log("All Good")
response.callback(response);
}else{
console.log("Hmm... Cant find function",response.callback );
}
}
STUFF.TestCallBack = function(data){
alert("it worked");
}
But when I do this I get the error “response.callback is not a function”.
Any comments on why this is not working and how to do this properly would be greatly appreciated.
A String is a String, not a Function.
response.callback()doesn’t work because it is the same as"STUFF.TestCallback"()notSTUFF.TestCallback()You probably want to have the data structured something more like
"callback": "TestCallback"then then do:Here you use the String to access a property of
STUFF. (foo.barandfoo['bar']being equivalent.)