热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在WEB应用程序上建立WCF

WCF就是web应用服务它提供javascript调用后台代码目前这是我对WCF的认知还有其他的话请回帖告诉我好么~好了正襟危坐撩起袖子开打~新建一个WEB应用程序命名为W

WCF就是web应用服务 它提供Javascript调用后台代码 目前这是我对WCF的认知 还有其他的话 请回帖告诉我好么~ 好了 正襟危坐 撩起袖子 开打~

新建一个WEB应用程序 命名为WATestWCF

然后为项目添加一个AJAX的WCF服务,再项目名字上右键->添加->新建项 选中“启用了AJAX的WCF服务”,如图

 在WEB应用程序上建立WCF - 寂夜风语 - 寂夜风语的博客

将文件名命名为PeopleSource.svc,点击添加,如果弹出一个错误对话框,提示未将对象引用,应该是添加此服务时VS先生成了代码而引用还没来得及给项目添加吧,反正后来运行没有错误,大家就直接忽略掉这个错误就好了。

在添加svc文件后,生成的svc文件如下图

 在WEB应用程序上建立WCF - 寂夜风语 - 寂夜风语的博客

VS会给项目的Web.config里将生成一段配置

 在WEB应用程序上建立WCF - 寂夜风语 - 寂夜风语的博客

这里的配置先不动他,我们先给我们添加的svc文件里添加几个代码,代码如下

    namespace WATestWCF

    {

        [ServiceContract(Namespace = "")]

        [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

        public class PeopleSource

        {

            // 添加 [WebGet] 属性以使用 HTTP GET

            [OperationContract]

            [WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json,

                RespOnseFormat= WebMessageFormat.Json, UriTemplate = "/DoWork")]

            public UserInfo DoWork()

            {

                return new UserInfo

                {

                    UserID = Guid.NewGuid().ToString(),

                    Name = "1"

                };

            }

 

            [DataContract]

            public class UserInfo

            {

                [DataMember]

                public string UserID { get; set; }

 

                [DataMember]

                public string Name { get; set; }

            }

        }

    }

现在我们改Web.config,将<enableWebScript/>这段换成<webHttp />

到现在服务端的代码已经全部完成了~\( ̄▽ ̄)/

我们现在为项目添加一个jQuery.js(http://docs.jquery.com/Downloading_jQuery#Download_jQuery 这里提供了很多jQuery版本,此实例使用的是jquery-1.2.6)

将JS脚本引用进Default.aspx中,如果要用到传参最好把json2.js(http://www.json.org/json2.js)也下下来引用进去,好~开始写请求了~这是最后一步了~~代码如下:

    <script type="text/Javascript">

        $.ajax({//此格式请参照jQuery帮助文档

            type: "POST", //一定要用POST,所以不用$.ajax方法的话就只能用$.post方法

            url: "PeopleSource.svc/DoWork", //svc文件的路径/svc.cs中的UriTemplate

            dataType: "json",

            success: function(obj) {

                alert(obj.DoWorkResult.UserID);

            }

        });

    script>

好了,运行看看~

接下来介绍两种传参方法

一.基本类型参数,比如string int bool之类的

将svc的DoWork方法将上参数

        public UserInfo DoWork(string name, string id)

        {

            return new UserInfo

            {

                UserID = id,

                Name = name

            };

        }

将Default.aspx中的Javascript代码改成

        $.ajax({

            type: "POST",

            url: "PeopleSource.svc/DoWork",

            contentType: 'application/json', //这个很重要,为什么这么写,我不知 = =!

            dataType: "json",

            data: '{"name":"123456","id":"456"}', //对应DoWork中的参数

            success: function(obj) {

                alert(obj.DoWorkResult.Name);

            }

        });

运行看看~~~

二.传送自己在服务端定义的数据类型

将svc的DoWork方法改成UserInfo类型的参数

        public UserInfo DoWork(UserInfo a)

        {

            return new UserInfo

            {

                UserID = Guid.NewGuid().ToString(),

                Name = a.Name

            };

        }

将Default.aspx中的Javascript代码改成

        var pamar = { a: { UserID: '123456', Name: '456'} }; //a既为DoWork里的a

        $.ajax({

            type: "POST",

            url: "PeopleSource.svc/DoWork",

            contentType: 'application/json',

            dataType: "json",

            data: JSON.stringify(pamar), //要引用json2.js,自己转格式太麻烦了

            success: function(obj) {

                alert(obj.DoWorkResult.Name);

            }

        });

运行看看~~~

好了,本文介绍完毕~O(∩_∩)O~


推荐阅读
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 解决java.lang.IllegalStateException: ApplicationEventMulticaster not initialized错误的方法和原因
    本文介绍了解决java.lang.IllegalStateException: ApplicationEventMulticaster not initialized错误的方法和原因。其中包括修改包名、解决service name重复、处理jar包冲突和添加maven依赖等解决方案。同时推荐了一个人工智能学习网站,该网站内容通俗易懂,风趣幽默,值得一看。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了使用FormData对象上传文件同时附带其他参数的方法。通过创建一个表单,将文件和参数添加到FormData对象中,然后使用ajax发送POST请求进行文件上传。在发送请求时,需要设置processData为false,告诉jquery不要处理发送的数据;同时设置contentType为false,告诉jquery不要设置content-Type请求头。 ... [详细]
author-avatar
赤木律孑
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有