.net Jquery 调用后台带参数方法的问题
我前段的js代码如下
JScript code
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
data: { "mid": d[0], "repost": d[1] },//d[0]=3395169326383796,d[1]=71
url: "Analytics.aspx/GetChartById",
dataType: "json",
success: function (cdata) {
var cjson = eval(cdata);
var chart = [];
$.each(cjson, function (j, c) {
chart.push([c.Hour, c.Count]);
});
$("#chart_" + d[0] + "").jqChart({
title: { text: 'JavaScript Array' },
series: [
{
type: 'line',
data: chart,
markers: { type: 'circle', size: 8 }
}
]
});
},
error: function (errorString) {
$.each(errorString, function (e, err) {
alert(err);
});
}
});
后台C#代码
C# code
[WebMethod]
public static string GetChartById(string mid,string repost)
{
return OAuth.SinaOuthBase.GetRepostDate(Int64.Parse(mid),int.Parse(repost));
}
调用的时候总是报出 http500的错误 用vs的断点 运行的时候却无法进入断点debug
遍历js的错误代码找到如下说明:
Message":"无效的 JSON 基元: mid。","StackTrace":" 在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\r\n 在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)\r\n 在 System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)\r\n 在 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)\r\n 在 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)\r\n 在 System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext context, JavaScriptSerializer serializer)\r\n 在 System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)\r\n 在 System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"
System.ArgumentException我特意 用.net的button事件写了一个方法来验证参数 发现可以正常调用方法
C# code
protected void btn_GetYesterdayData_Click(object sender, EventArgs e)
{
//Response.Write(OAuth.SinaOuthBase.GetRepostDate(3395169326383796,71));
}
------解决方案--------------------那你调用GetChartById(string mid,string repost)时,填入参数"33951693