我应该如何在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) {
}
});
使用Ajax的数据选项。您可以通过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();
将参数放入Ajax
调用的data
部分。看文件。例如:
$.ajax({
url: "/TestPage.aspx",
data: {"first": "Manu","Last":"Sharma"},
success: function(response) {
//Do Something
},
error: function(xhr) {
//Do Something to handle error
}
});