How to pass parameters in GET requests with jQuery
ajax, get, javascript, jquery
Solution
Use data option of ajax. You can send data object to server by `data` option in ajax and the `type` which defines how you are sending it (either `POST` or `GET`). The default type is `GET` method
Try this
$.ajax({
url: "ajax.aspx",
type: "get", //send it through get method
data: {
ajaxid: 4,
UserID: UserID,
EmailAddress: EmailAddress
},
success: function(response) {
//Do Something
},
error: function(xhr) {
//Do Something to handle error
}
});
And you can get the data by (if you are using PHP)
$_GET['ajaxid'] //gives 4
$_GET['UserID'] //gives you the sent userid
In aspx, I believe it is (might be wrong)
Request.QueryString["ajaxid"].ToString();
Problem
How should I be passing query string values in a jQuery Ajax request? I currently do them as follows but I'm sure there is a cleaner way that does not require me to encode manually. ``` $.ajax({ url: "ajax.aspx?ajaxid=4&UserID=" + UserID + "&EmailAddress=" + encodeURIComponent(EmailAddress), success: function(response) { //Do Something }, error: function(xhr) { //Do Something to handle error } }); ``` I’ve seen examples where query string parameters are passed as an array but these examples I've seen don't use the `$.ajax()` model, instead they go straight to `$.get()`. For example: ``` $.get("ajax.aspx", { UserID: UserID , EmailAddress: EmailAddress } ); ``` I prefer to use the $.ajax() format as it's what I’m used to (no particularly good reason - just a personal preference). Edit 09/04/2013: After my question was closed (as "Too Localised") i found a related (identical) question - with 3 upvotes no-less (My bad for not finding it in the first place): Using jquery to make a POST, how to properly supply 'data' parameter? This answered my question perfectly, I found that doing it this way is much easier to read & I don't need to manually use `encodeURIComponent()` in the URL or the DATA values (which is what i found unclear in bipen's answer). This is because the `data` value is encoded automatically via `$.param()`). Just in case this can be of use to anyone else, this is the example I went with: ``` $.ajax({ url: "ajax.aspx?ajaxid=4", data: { "VarA": VarA, "VarB": VarB, "VarC": VarC }, cache: false, type: "POST", success: function(response) { }, error: function(xhr) { } }); ```