traer por pasar parametros pagina externa enviar div datos con cargar array javascript jquery callback

javascript - por - pasar parametros get jquery



¿Cómo puedo pasar parámetros a un método de devolución de llamada jQuery $.getJSON? (5)

Deformación en una función, por ejemplo,

function getResults(locationType) { $.getJSON(url, null, function(results) { searchResults(results, locationType) }); }

Pero en su situación específica, ni siquiera tiene que pasarla, puede acceder al valor directamente en la devolución de llamada.

Estoy tratando de usar jQuery para llamar a alguna API personalizada a través de Ajax/$.getJSON .

Estoy tratando de pasar un valor personalizado al método de devolución de llamada Ajax, pero ese valor no se pasa y en realidad se sobrescribe. Este es mi código:

var locationType = 3; var url = ''blah blah blah'' + ''&locationType='' + locationType; $("#loading_status").show(); $.getJSON(url, null, function(results, locationType) { searchResults(results, locationType) });

El valor de locationType ANTES de que llame a la URL usando AJAX es 3 . Pero después de que la llamada devuelve los datos con éxito, el valor para locationType ahora es success . Esto se debe a que la firma del método de la devolución de llamada es:

devolución de llamada (datos, estado de texto) Una función de devolución de llamada que se ejecuta si la solicitud se realiza correctamente.

¿Cómo puedo pasar 1 o más parámetros a un método de devolución de llamada?


No necesita pasarlo, solo haga referencia a la variable que ya tiene, como esto:

var locationType = 3; var url = ''blah blah blah'' + ''&locationType='' + locationType; $("#loading_status").show(); $.getJSON(url, null, function(results) { searchResults(results, locationType) });

Además, no hay necesidad de pasar null si no tiene un objeto de datos, es un parámetro opcional y jQuery comprueba si el segundo parámetro es una función o no, por lo que puede hacer esto:

$.getJSON(url, function(results) { searchResults(results, locationType) });


Podría intentar:

function getResults(locationType) { $.getJSON(url, {p1:''xxx'', p2: ''yyy''}, function(results) { searchResults(results, locationType) }); }


Podrías usar el método .ajax :

var locationType = 3; var url = ''blah blah blah'' + ''&locationType='' + locationType; $.ajax({ url: url, context: { lt: locationType }, success: function(results) { searchResults(results, this.lt); } });


Si desea usar locationType (cuyo valor es 3 ) en la devolución de llamada, simplemente use

function(results) { .....

Gracias a los closures , locationType estará disponible automáticamente en la devolución de llamada.