首先建一个Ajax-WCF服务,[img][/img]图片见附件:,web-config自动配置就没管;
然后,在apsx文件中写js代码:
<script type="text/javascript" language="javascript">
$(function() {
$('#Nick').bind('blur', function() { // BLUR为失去焦点时候触发事件
if ($('#Nick').val() == '') {
alert("用户名不能为空.");
}
else {
$.ajax({
type: 'POST',
url: '<%= MixApplication.Instance.RelativePath %>/Service/RegisterUserService.svc/IsUserExist',
//dataType: 'json', 不要,有的话就会报500,server internal错误
contentType: "application/json",
data: '{"nickName":"' + $('#Nick').val() + '"}',
complete: function(xmlHttpRequest) {
//alert('完整的服务器响应已经收到');
},
success: function(data) {
//var a = eval('(' + data + ')'); //将JSON文本转换为对象
//alert(a.d);
var da = JSON.parse(data).d; // java的反序列化
//alert('data的值是:' + da);
if (da == true) {
$('#nickTip').html('用户名不存在,可以注册');
}
else {
$('#nickTip').css('color', 'red');
$('#nickTip').html('用户名已存在,请另外输入用户名');
}
}
});
}
})
$('#Nick').bind('focus', function() {
$('#nickTip').css('color', '');
$('#nickTip').html('');
})
})
</script>
来判断html控件中名字Nick是否已经存在,相应的html为:
<tr>
<td>
用户昵称:
</td>
<td>
<input name="NickText" id="Nick" type="text" class="long-input" style="width: 120px" />
</td>
<td>
<div id="NickTip" style="width: 270px">
</div>
<p id="nickTip">
</p>
<!--<div id="msg" style="display: none" visible="false">
</div>-->
</td>
</tr>
而相应的WCF服务代码为:
[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:
dataType: 'json',
data: '{"nickName":"' + $('#Nick').val() + '"}',
调试成功的用法:
contentType: "application/json",
data: '{"nickName":"' + $('#Nick').val() + '"}',
这两种写法的具体实现由何区别??实现机制难道不一样》?
解析:
$.ajax({})中的data属性:数据在web上传递的时候,由于是对象必须是key/value形式,json格式自动转换格式为:
{"fata1":"aa","data2":"bb"}转换为:&data1=aa&data2=bb,而contentType: "application/json"的具体含义就是始终是json。
- 描述: 图片Image
- 大小: 93.2 KB
分享到:
- 2009-12-05 11:59
- 浏览 2294
- 评论(1)
- 论坛回复 / 浏览 (0 / 2816)
- 查看更多
相关推荐
在提供的压缩包文件中,"VS2010中使用Jquery调用Wcf服务源码.txt"很可能是包含详细步骤和示例代码的文本文件。"Jquery.Wcf.sln"是解决方案文件,打开它可以查看整个项目的结构。"Jquery.Wcf.suo"存储了用户的个人...
**jQuery调用WCF服务详解** 在Web开发中,jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互。WCF(Windows Communication Foundation)是微软提供的一种面向服务的架构,用于构建...
**jQuery调用WCF服务详解** 在Web开发中,JavaScript库jQuery因其简洁高效的API而备受开发者喜爱。同时,Windows Communication Foundation(WCF)是.NET框架下用于构建分布式应用程序的服务模型。将jQuery与WCF...
4. **使用jQuery调用WCF服务**: 在客户端(通常是HTML页面),我们需要引入jQuery库,并编写JavaScript代码来发送POST请求。使用jQuery的`$.ajax`或`$.post`方法可以实现: ```javascript $.ajax({ type: "POST...
总结来说,jQuery调用WCF服务的过程主要包括创建WCF服务接口和实现,设置HTTP GET请求的JSON格式,以及在客户端使用jQuery的`$.getJSON`方法发起Ajax请求。通过这种方式,你可以方便地在网页上实时展示从服务器获取...
**jQuery调用WCF服务详解** 在Web开发中,jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理以及AJAX交互。而WCF(Windows Communication Foundation)是微软推出的一种全面的服务模型,用于构建分布式...
这个案例展示了如何使用jQuery调用WCF服务,通过AJAX实现了客户端与服务器端的异步通信。这对于创建交互式的Web应用非常有用,尤其是在需要实时更新数据或执行远程操作的情况下。了解这些技术的结合,能帮助开发者...
**jQuery调用WCF服务详解** 在Web开发中,JavaScript库jQuery因其简洁的API和强大的功能,被广泛用于客户端的交互处理。而Windows Communication Foundation(WCF)是.NET框架下的一个全面的服务模型,用于构建可互...
**五、JQuery调用WCF服务示例** 1. **JSONP**: ```javascript $.ajax({ url: 'http://otherdomain.com/Service.svc/GetData', type: 'GET', dataType: 'jsonp', jsonp: 'callback', success: function(data) {...
在客户端,我们可以使用jQuery或原生的XMLHttpRequest对象发起AJAX请求来调用WCF服务。这里以jQuery为例: ```javascript $.ajax({ url: 'http://your-wcf-service-url/YourService', type: 'POST', data: JSON....
4. **客户端JQuery调用**:在客户端,使用JQuery的Ajax功能发起HTTP请求调用WCF服务。这通常包括创建XMLHttpRequest对象,设置请求头,然后发送POST请求,将二维码数据作为请求体。 5. **处理响应**:当WCF服务返回...
本文将介绍如何使用jQuery的ajax功能调用WCF服务,并提供一个完整实例供读者参考。 首先,ajax调用WCF服务有跨域和不跨域两种方式。不跨域的ajax调用更为常见,因为它不需要额外配置跨域资源共享(CORS)。在不跨域...
为了通过AJAX调用WCF服务,我们需要配置服务以支持JSON或jsonp,因为这些格式更适合于前端与后台的异步通信。 **创建WCF服务** 1. 首先,创建一个新的WCF项目。在Visual Studio中,选择“文件”->“新建”->“项目...
标题“jquery wcf cross ,wcf 跨域”表明这个压缩包包含了关于如何使用jQuery调用WCF服务并解决跨域问题的资料。这里我们将深入探讨这个主题。 首先,理解jQuery的AJAX函数在跨域调用中的作用至关重要。jQuery的$....
在本示例中,我们将使用jQuery的$.ajax()方法来调用WCF服务。 以下是使用jQuery AJAX调用WCF服务的基本步骤: 1. **创建WCF服务**: - 首先,在Visual Studio中创建一个新的WCF服务项目。 - 定义服务接口,其中...
### jQuery Ajax调用WCF服务详细教程知识点 #### 1. WCF服务创建与配置 - 创建WCF服务应用程序项目:在Visual Studio中启动新的项目,选择WCF服务应用程序,创建服务所需的基本结构。 - 定义数据类:创建数据传输...
在实际应用中,jQuery会通过`$.ajax()`或`$.getJSON()`等函数发起HTTP请求,调用WCF服务的某个操作。这些请求通常包括服务的URL、要执行的方法名以及可能的参数。WCF服务接收到请求后,执行相应的业务逻辑,然后将...