首页 新闻 会员 周边

JQuery 调用webservice

0
悬赏园豆:20 [已解决问题] 解决于 2011-09-09 14:15

本人引用了一个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参数没错误,其它的是什么错??

rabbi88的主页 rabbi88 | 初学一级 | 园豆:4
提问于:2011-09-08 20:00
< >
分享
最佳答案
0

this.userhashcode是什么,有值吗,最有可能的就是这里的问题

还有,你的jquery中调用的方法是GetCompanyTotalByDay,而web service中的方法是GetStaffMessageData ,不一致啊

收获园豆:20
artwl | 专家六级 |园豆:16736 | 2011-09-08 20:07

有值的,我测试把值写死 0000214  

rabbi88 | 园豆:4 (初学一级) | 2011-09-08 20:08

@rabbi88:

少了双引号,要是标准的JSON格式

artwl | 园豆:16736 (专家六级) | 2011-09-08 20:10

@天行健 自强不息:

 

是参数值少了双引号吗?

rabbi88 | 园豆:4 (初学一级) | 2011-09-08 20:19

@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 + "}",

artwl | 园豆:16736 (专家六级) | 2011-09-08 20:23

@天行健 自强不息:

谢谢你的回复,我先试试。

rabbi88 | 园豆:4 (初学一级) | 2011-09-08 20:25

@天行健 自强不息:

仍然是一样的错误。   参数也要符合json格式吗?

rabbi88 | 园豆:4 (初学一级) | 2011-09-08 20:35

@rabbi88:

是的,你这里contentType: "application/json;charset=utf-8"写明了是JSON格式啊

你把调用的代码帖出来看看吧,另外先把参数换成数字试一下

你的jquery中调用的方法是GetCompanyTotalByDay,而web service中的方法是GetStaffMessageData ,这里不一致,这儿改过来了吗?

artwl | 园豆:16736 (专家六级) | 2011-09-08 20:38

@天行健 自强不息:

改过来了。contentType: "application/json;charset=utf-8"指定的是参数格式啊,学习了。谢谢你的指导。

参数错误也可能是我同事提供的方法有问题,明天让他测试下。今天先这样,谢谢你了。

rabbi88 | 园豆:4 (初学一级) | 2011-09-08 20:53

@rabbi88:

不客气

artwl | 园豆:16736 (专家六级) | 2011-09-08 20:54

@天行健 自强不息:

            问题找到了,不是调用webservice的问题,是webservice有问题。

rabbi88 | 园豆:4 (初学一级) | 2011-09-09 14:15
其他回答(1)
0

参数对应不起来吧

求吾 | 园豆:144 (初学一级) | 2012-04-27 15:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册