How can I use jQuery “load” to perform a GET request with extra parameters?
-
18-09-2019 - |
Question
I'm reading the jQuery load documentation and it mentions that I can use load to perform a GET request by passing in extra parameters as a string. My current code with my parameters as key/value pair is:
$("#output").load(
"server_output.html",
{
year: 2009,
country: "Canada"
}
);
The above works fine but it's a post request. How can I modify the above to perform a GET request while still using load
?
Solution
According to the documentation you linked:
A GET request will be performed by default - but if you pass in any extra parameters in the form of an Object/Map (key/value pairs) then a POST will occur. Extra parameters passed as a string will still use a GET request.
So the simple solution is to convert your object to a string before passing it to the function. Unfortunately, the documentation doesn't specify the format the string should be in, but I would guess it would be the same as if you were generating the GET request manually.
$("#output").load(
"/server_output.html?year=2009&country=Canada"
);
OTHER TIPS
Use $.param(data)
:
$("#output").load(
"server_output.html?" + $.param({
year: 2009,
country: "Canada"})
);
$("#output").load("server_output.html?year=2009&country=Canada");
can you not just do:
$("#output").load(
"server_output.html?year=2009&country='Canada'"
);
Use this
$("#output").load("server_output.html", {"2009":year, "Canada":country});