这样我试图生成JSON但是我收到了错误。
var DTO =
{
"UserID": $('txtUserID').val(),
"Pwd": $('txtPassword').val(),
"isPersistent": $('#chkRemember').attr('checked')
};
这样我将json数据发送到我的服务器端函数'
$(document).ready(function () {
$("#btnSubmit").click(function () {
var DTO =
{
"UserID": $('txtUserID').val(),
"Pwd": $('txtPassword').val(),
"isPersistent": $('#chkRemember').attr('checked')
};
alert(DTO);
alert(JSON.stringify(DTO));
$.ajax({
type: "POST",
url: "CateGory.aspx/GetData",
data: JSON.stringify(DTO),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
sHtml = data.d;
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
return false;
})
});
我犯了任何错误,因为我正在向服务器端功能发送多个参数。
[WebMethod]
public static string Authenticate(string UserID,string Pwd,bool isPersistent)
{
return "SUCCESS";
}
所以请指导我如何用DTO对象中的数据包装我的多个参数,稍后我们可以发出data: JSON.stringify(DTO)
。
答案 0 :(得分:0)
首先:你不需要对此进行字符串化。第二:执行GET而不是POST,因为你有多个参数。
您还可以创建一个新类:
class SomeObjectToBePosted {
string UserID { get;set; }
string Pwd { get;set; }
bool isPersistant { get;set; }
}
让它成为WebMethod的参数。然后你可以再次使用POST。
答案 1 :(得分:0)
你得到什么错误?
使用jQuery,您不需要对数据对象进行字符串化,只需编写:data:DTO
答案 2 :(得分:0)
看起来你url
错了。我想你正在打电话给网络服务。此外,您还不需要stringify
数据,因为它已经很好地形成了JSON
更改
url: "CateGory.aspx/GetData",
data: JSON.stringify(DTO)
要
url: "CateGory.asmx/GetData",
data: DTO