tags:

views:

120

answers:

4

I'm reading the jQuery load documentaion 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?

A: 
$("#output").load("server_output.html?year=2009&country=Canada");
saturdayplace
+3  A: 

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"
);
tj111
A: 

can you not just do:

$("#output").load(
    "server_output.html?year=2009&country='Canada'"
);
Scott Evernden
+1  A: 

Use $.param(data):

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

Kane