热门标签 | 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~


推荐阅读
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • CentOS 7 中 iptables 过滤表实例与 NAT 表应用详解
    在 CentOS 7 系统中,iptables 的过滤表和 NAT 表具有重要的应用价值。本文通过具体实例详细介绍了如何配置 iptables 的过滤表,包括编写脚本文件 `/usr/local/sbin/iptables.sh`,并使用 `iptables -F` 清空现有规则。此外,还深入探讨了 NAT 表的配置方法,帮助读者更好地理解和应用这些网络防火墙技术。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
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社区 版权所有