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?

Was it helpful?

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});
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top