为了账号安全,请及时绑定邮箱和手机立即绑定

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

如何使用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) {    }});
查看完整描述

3 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

使用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(); 


查看完整回答
反对 回复 2019-08-31
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

把你的参数放在通话的data一部分ajax。查看文档。像这样:


$.ajax({

    url: "/TestPage.aspx",

    data: {"first": "Manu","Last":"Sharma"},

    success: function(response) {

        //Do Something

    },

    error: function(xhr) {

        //Do Something to handle error

    }

});


查看完整回答
反对 回复 2019-08-31
?
森栏

TA贡献1810条经验 获得超5个赞

这是使用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提供更大灵活性的文档


查看完整回答
反对 回复 2019-08-31
  • 3 回答
  • 0 关注
  • 2243 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信