I’ve created a wrapper function for jQuery’s $.ajax() method so I can pass different dataTypes and post variables – like so:
function doPost(dType, postData, uri){
$.ajax({
url: SITE_URL + uri,
dataType: dType,
data: postData,
success: function(data){
return data;
});
}
The problem I’m having is getting the data (which is always JSON) back out. I’ve tried setting a var ret before the $.ajax() function call and setting it as ret = data in the success function. Am I being stupid about this? If I don’t set a success function, will the $.ajax simply return the data? Or is it just success: return data? Or does success require a callback function to handle the data, which could just be return data?
Well, you are inside a function – take advantage of variable scope 😉
This actually works, but I guess the
asyncpart is obligatory then… Otherwise the call of$.ajaxwould return immediately, andresultwould still be undefined – you would always getundefinedas result of your function call.However, when you make the
$.ajaxcall synchronous, it blocks until the data is received, and you can return the data asresultof your own function.But you have to be clear that when using this method, no other code will be executed until the ajax load finishes!