本人引用了一个webservices 在本地地址为http://localhost:7516/DataCenterForPortalService.asmx
这个webservice里面的方法有个方法
public List<StaffMessageData> GetStaffMessageData (string userhashcode, int year , int month , int day )
{
}
调用webservices 的Jquery代码如下:
$.ajax({
type: "POST",
contentType: "application/json;charset=utf-8",
url: "http://localhost:7516/DataCenterForPortalService.asmx/GetCompanyTotalByDay", data: "{userhashcod:" + this.userhashcode + ",year:" + this.year + ",month:" + this.month + ",day:" + this.day + "}",
dataType: "json",
success: function (result) {
// var json = eval('(' + result + ')');
// GetData(json);
alert(result);
},
error:function(error)
{
alert(error);
} });
捕获的错误error信息为 {"Message":"Web 服务调用无效,参数“userhashcode”缺少值。","StackTrace":" 在 System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters)\r\n 在 System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)\r\n 在 System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n 在 System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}
请问是否是我的参数url写法错误?如果url参数没错误,其它的是什么错??
this.userhashcode是什么,有值吗,最有可能的就是这里的问题
还有,你的jquery中调用的方法是GetCompanyTotalByDay,而web service中的方法是GetStaffMessageData ,不一致啊
有值的,我测试把值写死 0000214
@rabbi88:
少了双引号,要是标准的JSON格式
@天行健 自强不息:
是参数值少了双引号吗?
@rabbi88:
标准的JSON格式参考:http://www.cnblogs.com/Truly/archive/2006/12/31/608896.html
data试试这样写:
data: "{\"userhashcod\":\"" + this.userhashcode + "\",\"year\":" + this.year + ",\"month\":" + this.month + ",\"day\":" + this.day + "}",
@天行健 自强不息:
谢谢你的回复,我先试试。
@天行健 自强不息:
仍然是一样的错误。 参数也要符合json格式吗?
@rabbi88:
是的,你这里contentType: "application/json;charset=utf-8"写明了是JSON格式啊
你把调用的代码帖出来看看吧,另外先把参数换成数字试一下
你的jquery中调用的方法是GetCompanyTotalByDay,而web service中的方法是GetStaffMessageData ,这里不一致,这儿改过来了吗?
@天行健 自强不息:
改过来了。contentType: "application/json;charset=utf-8"指定的是参数格式啊,学习了。谢谢你的指导。
参数错误也可能是我同事提供的方法有问题,明天让他测试下。今天先这样,谢谢你了。
@rabbi88:
不客气
@天行健 自强不息:
问题找到了,不是调用webservice的问题,是webservice有问题。
参数对应不起来吧