我使用$.ajax向Asp.Net中的C#代码发送请求。每次我在响应中(在Firebug中检查)都收到错误,如:
{"Message":"Invalid JSON primitive: EmailAddress.","StackTrace":" at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n at System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)\r\n at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)\r\n at System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext context, JavaScriptSerializer serializer)\r\n at System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.ArgumentException"}
如果我从$.ajax删除data:{}参数,那么它很好。我认为我的方式发送数据到服务器有一些问题。
我的客户端代码: 功能SEND_REQ(){
$.ajax({
url: "Demo.aspx/Demo_Method",
contentType: "application/json; charset=UTF-8",
type: "POST",
data: {"EmailAddress": "[email protected]"},
success: function (response) {
alert('Success' + response);
}
});
}
而且Demo.aspx.cs页面代码:
public partial class Demo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod()]
public static void Demo_Method(string EmailAddress)
{
//Some code....
}
}
2013-03-12
Gerry
+0
你有一个重载的方法 “作废Demo_Method(INT东西)”? –
2013-03-12 08:10:04
+0
不仅有这两种方法:无效Page_Loda()和无效Demo_Method(字符串EmailAddress) –
2013-03-12 09:09:07