¿Cómo puedo usar jQuery "load" para realizar una solicitud GET con parámetros adicionales?


Estoy leyendo la documentación de carga de jQuery y menciona que puedo usar load para realizar una solicitud GET pasando parámetros adicionales como una cadena. Mi código actual con mis parámetros como par clave/valor es:

$("#output").load(
    "server_output.html",
    {
        year: 2009,
        country: "Canada"
    }
);

Lo anterior funciona bien, pero es una solicitud post. ¿Cómo puedo modificar lo anterior para realizar una solicitud GET mientras sigo usando load?

Author: Cole Johnson, 2009-09-28

5 answers

De acuerdo con la documentación que enlazó:

Una solicitud GET será realizada por por defecto-pero si pasa en cualquier extra parámetros en forma de Objeto / Mapa (pares clave/valor) POST se producirá. Parámetros Extra passed as a string will still use a Solicitud GET.

Así que la solución simple es convertir su objeto en una cadena antes de pasarlo a la función. Desafortunadamente, la documentación no especifica el formato que debe tener la cadena en, pero supongo que sería lo mismo que si estuviera generando la solicitud GET manualmente.

$("#output").load(
    "/server_output.html?year=2009&country=Canada"
);
 15
Author: tj111,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-28 18:35:23

Use $.param(data):

$("#output").load(
    "server_output.html?" + $.param({
        year: 2009,
        country: "Canada"})
);
 87
Author: Kane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-21 20:20:15
$("#output").load("server_output.html?year=2009&country=Canada");
 -2
Author: saturdayplace,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-28 18:35:10

No puedes simplemente hacer:

$("#output").load(
    "server_output.html?year=2009&country='Canada'"
);
 -2
Author: Scott Evernden,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-28 18:35:36

Usa esto

$("#output").load("server_output.html", {"2009":year, "Canada":country});
 -3
Author: Gua Syed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-12 20:03:14