龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

JQuery高级应用之使用Jquery调用WCF服务(2)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
而相应的WCF服务代码为: Code [http://www.xueit.com] [OperationContract] [WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodySt

而相应的WCF服务代码为:

Code [http://www.xueit.com]
[OperationContract] [WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)] public bool IsUserExist(string nickName) { bool result = false; if (UserService.IsUserExsits(nickName)==true) //表示用户不存在 { result = true; } return result; }

下面错误就出现了:

    默认建立WCF服务,并没有 [WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]这句。后面是在网上看到的,就添加了上去,是为了客户端与服务器端交互的数据都是json;

   然后,用jquery调用$.ajax({})服务时候,参照相应参数:datatype:'json',使服务器返回的参数类型是json,但这样的话,同FF调试的时候,HTTP服务器响应的状态值始终是500,intenal server error;

  后来网上查了一下,不知道所以,就把datatype:'json'这句注释了,改用contentType: "application/json", 后面就调试成功:在将返回数据反序列话后,就正确提示用户名是否存在的信息。

   问题就是:其中contentType: "application/json", 的contentType却不是$.ajax({})中的属性,而且我觉得这句话的contentType: "application/json", 含义就是:与[WebInvoke(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)] 对应,使得客户端与服务器端交互的数据都是json;但实际上我一开始用datatype:'json'时候传的数据以及服务器返回的数据都是json:

Code [http://www.xueit.com]
dataType: 'json', data: '{"nickName":"' $('#Nick').val() '"}',

调试成功的用法:

Code [http://www.xueit.com]
contentType: "application/json", data: '{"nickName":"' $('#Nick').val() '"}',

精彩图集

赞助商链接