I'm trying to use jQuery to call some custom API via Ajax/$.getJSON
.
I'm trying to pass a custom value into the Ajax callback method, but that value is not getting passed through and is actually getting overwritten. This is my code:
var locationType = 3;
var url = 'blah blah blah' + '&locationType=' + locationType;
$("#loading_status").show();
$.getJSON(url, null, function(results, locationType) {
searchResults(results, locationType)
});
The value of locationType
BEFORE I call the URL using AJAX is 3
. But after the call returns the data successfully, the value for locationType
is now success
. This is because the method signature of the callback is:
callback(data, textStatus)A callback function that is executed if the request succeeds.
How can I pass 1 or more parameters to a callback method?
If you want to use
locationType
(whose value is3
) in the callback, simply usethanks to closures,
locationType
will be automatically available in the callback.Could try:
You could use the .ajax method:
You don't need to pass it in, just reference the variable you already have, like this:
Also there's no need to pass
null
if you don't have a data object, it's an optional parameter and jQuery checks if the second param is a function or not, so you can just do this:Warp in a function, e.g.
But in you specific situation you don't even have to pass it, you can access the value directly in the callback.