我应该如何传递一个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 } );
我更喜欢使用$阿贾克斯()格式,因为它是我已经习惯了(没有什么特别好的理由 - 只是个人喜好)。
编辑2013年9月4日:
我的问题被关闭之后(如“太本地化”),我发现了一个相关的(相同的)的问题 - 与3个upvotes没有少(我的坏摆在首位没有找到它):
使用jQuery做一个POST,如何正确地提供“数据”参数?
这个回答我的问题很好,我发现,做这种方式是更容易阅读和我不需要手动使用encodeURIComponent()
在URL或数据值(这是我发现不清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) {
}
});
Answer 1:
使用Ajax的数据选项。 您可以通过发送数据对象到服务器data
在阿贾克斯和期权的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();
Answer 2:
把你的PARAMS在data
中的一部分ajax
调用。 请参阅该文档 。 像这样:
$.ajax({
url: "/TestPage.aspx",
data: {"first": "Manu","Last":"Sharma"},
success: function(response) {
//Do Something
},
error: function(xhr) {
//Do Something to handle error
}
});
Answer 3:
下面是使用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
允许更多空间的灵活性
Answer 4:
尝试添加此:
$.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
}
});
依赖于预期的数据类型,你可以将html, json, script, xml
Answer 5:
数据属性允许你在一个字符串发送。 在您的服务器端代码,接受它作为一个字符串参数名“myVar的”,然后就可以分析出来。
$.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
}
});
Answer 6:
您可以使用$.ajax()
如果你不想直接把参数到URL中,使用data:
。 这是附加到URL
来源: http://api.jquery.com/jQuery.ajax/
Answer 7:
当初,我指定的相同问题data
,但浏览器是将请求发送到URL结尾[Object object]
。
你应该有processData
设置为true
。
processData: true, // You should comment this out if is false or set to true
Answer 8:
AJAX方法的数据参数可以将数据发送到服务器side.On服务器端可以请求data.See代码
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);
}
});
在服务器端使用$ _ GET变量它接收。
$_GET['id'];
文章来源: How to pass parameters in GET requests with jQuery