如何使用jQuery在GET请求中传递参数

我应该如何在jQuery Ajax请求中传递查询string值? 我目前这样做,但我敢肯定,有一个更清洁的方式,不需要我手动编码。

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

我已经看到了查询string参数作为数组传递的例子,但是我看到的这些例子不使用$.ajax()模型,而是直接到$.get() 。 例如:

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

我更喜欢使用$ .ajax()格式,因为这是我习惯的(没有特别好的理由 – 只是个人偏好)。

编辑09/04/2013:

在我的问题被closures后(“太本地化”),我发现一个相关的(相同的)问题 – 与3 upvotes不less(我不好找不到它在第一个地方):

使用jQuery进行POST,如何正确提供'data'参数?

这完美地回答了我的问题,我发现这样做更容易阅读,我不需要在URL或DATA值(这是我发现在bipen的答案中不清楚encodeURIComponent()手动使用encodeURIComponent() )。 这是因为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) { } }); 

使用Ajax的数据选项。 您可以通过ajax中的data选项将数据对象发送到服务器,以及定义如何发送数据的typePOSTGET )。 默认的types是GET方法

尝试这个

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

你可以通过

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

把你的params在ajax调用的data部分。 看文档 。 像这样:

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

数据属性允许你发送一个string。 在你的服务器端代码,接受它作为一个string参数名称“myVar”,然后你可以parsing出来。

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

尝试添加这个:

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

取决于预期的数据types,你可以指定html, json, script, xml

您可以使用$.ajax() ,如果您不想直接将参数放入URL中,请使用data: 这被附加到URL

资料来源: http : //api.jquery.com/jQuery.ajax/

ajax方法的数据参数允许您将数据发送到服务器端。在服务器端您可以请求数据。请参阅代码

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

在服务器端使用$ _GETvariables接收它。

 $_GET['id']; 

在这里你可以得到一个例子 。