`
TTLtry
  • 浏览: 22514 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

jQuery调用WCF服务

阅读更多

 首先建一个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
分享到:
评论
1 楼 abc7797005 2011-11-22  
如果要调用的客户端页面和wcf服务,不是放在同一个网站,而是放在不同的网站上,那要怎么调用?配置文件要怎么写呢

相关推荐

    VS2010中使用Jquery调用Wcf服务源码

    在提供的压缩包文件中,"VS2010中使用Jquery调用Wcf服务源码.txt"很可能是包含详细步骤和示例代码的文本文件。"Jquery.Wcf.sln"是解决方案文件,打开它可以查看整个项目的结构。"Jquery.Wcf.suo"存储了用户的个人...

    jQuery调用WCF

    **jQuery调用WCF服务详解** 在Web开发中,jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互。WCF(Windows Communication Foundation)是微软提供的一种面向服务的架构,用于构建...

    Jquery调用WCF

    **jQuery调用WCF服务详解** 在Web开发中,JavaScript库jQuery因其简洁高效的API而备受开发者喜爱。同时,Windows Communication Foundation(WCF)是.NET框架下用于构建分布式应用程序的服务模型。将jQuery与WCF...

    jquery 调用WCF :多参数

    4. **使用jQuery调用WCF服务**: 在客户端(通常是HTML页面),我们需要引入jQuery库,并编写JavaScript代码来发送POST请求。使用jQuery的`$.ajax`或`$.post`方法可以实现: ```javascript $.ajax({ type: "POST...

    jquery调用wcf并展示出数据的方法

    总结来说,jQuery调用WCF服务的过程主要包括创建WCF服务接口和实现,设置HTTP GET请求的JSON格式,以及在客户端使用jQuery的`$.getJSON`方法发起Ajax请求。通过这种方式,你可以方便地在网页上实时展示从服务器获取...

    jquery 调用 WCF

    **jQuery调用WCF服务详解** 在Web开发中,jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理以及AJAX交互。而WCF(Windows Communication Foundation)是微软推出的一种全面的服务模型,用于构建分布式...

    WCF JS 调用案例 Jquery调用案例

    这个案例展示了如何使用jQuery调用WCF服务,通过AJAX实现了客户端与服务器端的异步通信。这对于创建交互式的Web应用非常有用,尤其是在需要实时更新数据或执行远程操作的情况下。了解这些技术的结合,能帮助开发者...

    jquery调用wcf

    **jQuery调用WCF服务详解** 在Web开发中,JavaScript库jQuery因其简洁的API和强大的功能,被广泛用于客户端的交互处理。而Windows Communication Foundation(WCF)是.NET框架下的一个全面的服务模型,用于构建可互...

    jquery跨域调用wcf

    **五、JQuery调用WCF服务示例** 1. **JSONP**: ```javascript $.ajax({ url: 'http://otherdomain.com/Service.svc/GetData', type: 'GET', dataType: 'jsonp', jsonp: 'callback', success: function(data) {...

    JS跨域调用WCF服务实例(WCF服务宿主到控制台)

    在客户端,我们可以使用jQuery或原生的XMLHttpRequest对象发起AJAX请求来调用WCF服务。这里以jQuery为例: ```javascript $.ajax({ url: 'http://your-wcf-service-url/YourService', type: 'POST', data: JSON....

    使用JQuery调用WCF驱动TSC打印机打印二维码的例子

    4. **客户端JQuery调用**:在客户端,使用JQuery的Ajax功能发起HTTP请求调用WCF服务。这通常包括创建XMLHttpRequest对象,设置请求头,然后发送POST请求,将二维码数据作为请求体。 5. **处理响应**:当WCF服务返回...

    jQuery实现ajax调用WCF服务的方法(附带demo下载)

    本文将介绍如何使用jQuery的ajax功能调用WCF服务,并提供一个完整实例供读者参考。 首先,ajax调用WCF服务有跨域和不跨域两种方式。不跨域的ajax调用更为常见,因为它不需要额外配置跨域资源共享(CORS)。在不跨域...

    使用js+ajax调用WCF服务

    为了通过AJAX调用WCF服务,我们需要配置服务以支持JSON或jsonp,因为这些格式更适合于前端与后台的异步通信。 **创建WCF服务** 1. 首先,创建一个新的WCF项目。在Visual Studio中,选择“文件”-&gt;“新建”-&gt;“项目...

    jquery wcf cross ,wcf 跨域

    标题“jquery wcf cross ,wcf 跨域”表明这个压缩包包含了关于如何使用jQuery调用WCF服务并解决跨域问题的资料。这里我们将深入探讨这个主题。 首先,理解jQuery的AJAX函数在跨域调用中的作用至关重要。jQuery的$....

    ajax调用WCF服务

    在本示例中,我们将使用jQuery的$.ajax()方法来调用WCF服务。 以下是使用jQuery AJAX调用WCF服务的基本步骤: 1. **创建WCF服务**: - 首先,在Visual Studio中创建一个新的WCF服务项目。 - 定义服务接口,其中...

    jQuery Ajax调用WCF服务详细教程

    ### jQuery Ajax调用WCF服务详细教程知识点 #### 1. WCF服务创建与配置 - 创建WCF服务应用程序项目:在Visual Studio中启动新的项目,选择WCF服务应用程序,创建服务所需的基本结构。 - 定义数据类:创建数据传输...

    jquery调用访问wcf案例

    在实际应用中,jQuery会通过`$.ajax()`或`$.getJSON()`等函数发起HTTP请求,调用WCF服务的某个操作。这些请求通常包括服务的URL、要执行的方法名以及可能的参数。WCF服务接收到请求后,执行相应的业务逻辑,然后将...

Global site tag (gtag.js) - Google Analytics