Como passar parâmetros em solicitações GET com jQuery

Como devo passar valores de string de consulta em uma solicitação do jQuery Ajax? Eu atualmente faço isso da seguinte forma, mas tenho certeza que existe uma maneira mais limpa que não requer que eu codifique manualmente.

$.ajax({ url: "ajax.aspx?ajaxid=4&UserID=" + UserID + "&EmailAddress=" + encodeURIComponent(EmailAddress), success: function(response) { //Do Something }, error: function(xhr) { //Do Something to handle error } }); 

Eu vi exemplos em que os parâmetros de string de consulta são passados ​​como uma matriz, mas esses exemplos que vi não usam o modelo $.ajax() , em vez disso, eles vão direto para $.get() . Por exemplo:

 $.get("ajax.aspx", { UserID: UserID , EmailAddress: EmailAddress } ); 

Eu prefiro usar o formato $ .ajax () como é o que eu estou acostumado (sem nenhuma boa razão – apenas uma preferência pessoal).

Editar 09/04/2013:

Depois que minha pergunta foi encerrada (como “Too Localized”) eu encontrei uma questão relacionada (idêntica) – com 3 votos positivos no-less (Meu mal por não encontrá-lo em primeiro lugar):

Usando jquery para fazer um POST, como fornecer corretamente o parâmetro ‘data’?

Isso respondeu a minha pergunta perfeitamente, eu achei que fazer isso dessa maneira é muito mais fácil de ler e eu não preciso usar manualmente o encodeURIComponent() no URL ou os valores de dados (que é o que eu achei não está claro na resposta do bipen). Isso ocorre porque o valor dos data é codificado automaticamente por $.param() ). Apenas no caso de isso poder ser útil para qualquer outra pessoa, este é o exemplo com o qual eu fui:

 $.ajax({ url: "ajax.aspx?ajaxid=4", data: { "VarA": VarA, "VarB": VarB, "VarC": VarC }, cache: false, type: "POST", success: function(response) { }, error: function(xhr) { } }); 

    Use a opção de dados do ajax. Você pode enviar o object de dados para o servidor pela opção de data em ajax e o type que define como você está enviando ( POST ou GET ). O tipo padrão é o método GET

    Tente isso

     $.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 } }); 

    E você pode obter os dados por

      $_GET['ajaxid'] //gives 4 $_GET['UserID'] //gives you the sent userid 

    Coloque seus parâmetros na parte de data da chamada ajax . Veja os documentos . Igual a:

     $.ajax({ url: "/TestPage.aspx", data: {"first": "Manu","Last":"Sharma"}, success: function(response) { //Do Something }, error: function(xhr) { //Do Something to handle error } }); 

    Tente adicionar isto:

     $.ajax({ url: "ajax.aspx", type:'get', data: {ajaxid:4, UserID: UserID , EmailAddress: encodeURIComponent(EmailAddress)}, dataType: 'json', success: function(response) { //Do Something }, error: function(xhr) { //Do Something to handle error } }); 

    Depende de qual tipo de dados é esperado, você pode atribuir html, json, script, xml

    A propriedade data permite enviar uma string. Em seu código do lado do servidor, aceite-o como um nome de argumento de string “myVar” e, em seguida, você poderá analisá-lo.

     $.ajax({ url: "ajax.aspx", data: [myVar = {id: 4, email: 'emailaddress', myArray: [1, 2, 3]}]; success: function(response) { //Do Something }, error: function(xhr) { //Do Something to handle error } }); 

    Aqui está a syntax usando jQuery $.get

     $.get(url, data, successCallback, datatype) 

    Então, no seu caso, isso equivaleria a

     var url = 'ajax.asp'; var data = { ajaxid: 4, UserID: UserID, EmailAddress: EmailAddress }; var datatype = 'jsonp'; function success(response) { // do something here } $.get('ajax.aspx', data, success, datatype) 

    Nota $.get não lhe dá a oportunidade de definir um manipulador de erro. Mas existem várias maneiras de fazer isso usando $ .ajaxSetup () , $ .ajaxError () ou encadeando um .fail em seu $.get como abaixo

     $.get(url, data, success, datatype) .fail(function(){ }) 

    O motivo para definir o tipo de dados como ‘jsonp’ é devido a problemas de política de origem mesmo navegador, mas se você estiver fazendo a solicitação no mesmo domínio onde o seu javascript está hospedado, você deve estar bem com o tipo de dados definido como json .

    Se você não quiser usar o jquery $.get , consulte os documentos para $.ajax que permite mais flexibilidade

    Você pode usar o $.ajax() , e se você não quiser colocar os parâmetros diretamente no URL, use os data: Isso é anexado ao URL

    Fonte: http://api.jquery.com/jQuery.ajax/

    Tive o mesmo problema em que eu especifiquei os data mas o navegador estava enviando solicitações para o URL que terminava com [Object object] .

    Você deve ter processData definido como true .

     processData: true, // You should comment this out if is false or set to true 

    O parâmetro de dados do método ajax permite enviar dados para o lado do servidor. No lado do servidor, você pode solicitar os dados. Veja o código

     var id=5; $.ajax({ type: "get", url: "url of server side script", data:{id:id}, success: function(res){ console.log(res); }, error:function(error) { console.log(error); } }); 

    No lado do servidor, receba-a usando a variável $ _GET.

     $_GET['id']; 

    Aqui você pode obter um exemplo .