Как мне передать значения строки запроса в запросе jQuery Ajax? В настоящее время я делаю это следующим образом, но я уверен, что есть более чистый способ, который не требует, чтобы я кодировал вручную.
$.ajax({
url: "ajax.aspx?ajaxid=4&UserID=" + UserID + "&EmailAddress=" + encodeURIComponent(EmailAddress),
success: function(response) {
//Do Something
},
error: function(xhr) {
//Do Something to handle error
}
});
Я видел примеры, где параметры строки запроса передаются как массив, но эти примеры, которые я видел, не используют модель $.ajax()
, вместо этого они идут прямо к $.get()
. Например:
$.get("ajax.aspx", { UserID: UserID , EmailAddress: EmailAddress } );
Я предпочитаю использовать формат $.ajax(), так как это то, к чему я использовал (без особого основания - только личное предпочтение).
Редактировать 09/04/2013:
После того, как мой вопрос был закрыт (как "Слишком локализованный" ), я нашел связанный (идентичный) вопрос - с 3 upvotes no-less (Мой плохой, потому что не нашел его в первую очередь):
Используя jquery для создания POST, как правильно поставить параметр "данные" ?
Это отлично ответило на мой вопрос, я обнаружил, что делать это таким образом намного проще для чтения, и мне не нужно вручную использовать encodeURIComponent()
в URL-адресе или значениях DATA (это то, что я нашел неясным в bipen-ответе). Это связано с тем, что значение data
автоматически закодировано через $.param()
). На всякий случай это может быть полезно для кого-либо еще, это пример, который я использовал:
$.ajax({
url: "ajax.aspx?ajaxid=4",
data: {
"VarA": VarA,
"VarB": VarB,
"VarC": VarC
},
cache: false,
type: "POST",
success: function(response) {
},
error: function(xhr) {
}
});