如何使用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:


在我的问题被关闭后(作为“Too Localized”),我发现了一个相关的(完全相同的)问题 - 3个upvotes no-less(我不喜欢首先找到它):


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


这完全回答了我的问题,我发现这样做更容易阅读,我不需要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) {


    }

});


梦里花落0921
浏览 2252回答 3
3回答

互换的青春

使用ajax的数据选项。您可以通过dataajax中的选项将数据对象发送到服务器,并type定义您发送它的方式(POST或者GET)。默认类型是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(); 

繁星淼淼

把你的参数放在通话的data一部分ajax。查看文档。像这样:$.ajax({    url: "/TestPage.aspx",    data: {"first": "Manu","Last":"Sharma"},    success: function(response) {        //Do Something    },    error: function(xhr) {        //Do Something to handle error    }});

森栏

这是使用jQuery的语法 $.get$.get(url, data, successCallback, datatype)所以在你的情况下,这相当于,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)注意  $.get不会为您提供设置错误处理程序的机会。但有几种方法可以使用$ .ajaxSetup(),$ .ajaxError()或.fail在$.get下面链接你的$.get(url, data, success, datatype) .fail(function(){})将数据类型设置为“jsonp”的原因是由于浏览器的原始策略问题相同,但如果您在托管javascript的同一域上发出请求,则应将数据类型设置为json。如果您不想使用jquery,$.get那么请查看为其$.ajax提供更大灵活性的文档
打开App,查看更多内容
随时随地看视频慕课网APP