(1. Do you find it useful to have a global jQuery ajax ‘helper’ that you can call ajax(url,data,async) ? )
function ajax(ajax_url, ajax_data, ajax_async){
ajax_async = typeof(ajax_async) != 'undefined' ? ajax_async : true;
$.ajax({
type: 'GET',
url: ajax_url,
data: ajax_data,
async: ajax_async,
dataType: 'text',
success: function(response) {
return response;
},
error: function(){
}
});
}
If I’m calling a function that places a GET and returns the success response.
alert(ajax('localhost/hello','',false);
If I do alert(get_ajax()) I get an alert of ‘undefined’.. even if there was a return value
I see its an event loop issue, but I async:false in the ajax call. thoughts?
This is one of those questions that has been asked a million times, but it’s nearly impossible to search. Anyway, the problem is that when you return from here…
…you’re not returning from the
ajax()function but the anonymoussuccessfunction. To return the value from the main function you have to save the string to a variable so that you can return from the correct function.Note that this only works when you’re making a synchronous call. For asynchronous calls it’s better to give a callback function as an argument and use it as the success function.