提问者:小点点

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


我应该如何在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票的支持(我的缺点是一开始就没有找到它):

使用jquery发布帖子,如何正确提供“data”参数?

这完美地回答了我的问题,我发现这样做更容易阅读&我不需要在URL或数据值中手动使用encodeUricomponent()(这是我在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) {

    }
});

共2个答案

匿名用户

使用Ajax的数据选项。您可以通过ajax中的data选项和定义如何发送数据对象的type来向服务器发送数据对象(postget)。默认类型为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
  }
});

您可以通过以下方法获取数据(如果您使用的是PHP)

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

在aspx中,我相信它是(可能是错误的)

 Request.QueryString["ajaxid"].ToString(); 

匿名用户

将参数放入Ajax调用的data部分。看文件。例如:

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