千家信息网

如何在客户端直接调用Web Service中的方法

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章主要介绍"如何在客户端直接调用Web Service中的方法",在日常操作中,相信很多人在如何在客户端直接调用Web Service中的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2024年11月28日如何在客户端直接调用Web Service中的方法

这篇文章主要介绍"如何在客户端直接调用Web Service中的方法",在日常操作中,相信很多人在如何在客户端直接调用Web Service中的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何在客户端直接调用Web Service中的方法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1.Web.config中需要配置好运行ASP.NET AJAX框架相应的配置项,当然,建立一个ASP.NET AJAX Enabled Web Site项目时,Web.config已经配置好了。

2.想让某个WebService可以被JS调用,需要做一下几步:
◆在这个WebService文件里用"using System.Web.Script.Services;"引入这个命名空间。
◆在这个类的上面添加"[ScriptService]"属性。
◆在需要被调用的方法上添加"[WebMethod]"属性。

3.调用WebService的客户端页面也要做相应准备。首先就是页面中要有一个ScriptManager控件,然后需要在其中指明WebService文件的位置。如:

<Services>  <asp:ServiceReference Path="~/SayHelloService.asmx" />  </Services>

将这段代码放在和标签之间,就可以使得这个页面中的JS可以直接调用SayHelloService.asmx中的方法。

做好以上三项准备,这个页面中的JS代码就可以使用我们熟悉的"类名.方法名"的方法直接调用WebService中的方法了。

魔法背后的故事

我们知道,虽然我们一直说是"直接调用",但这是指在语法层面上"直接调用"。而实际上,JavaScript代码是不可能真正直接调用后台程序的,这中间一定使用了XMLHttpRequest对象。那么,到底是谁给我们实施了"障眼法"?答案就在下面这张图上:

上图就是这个所谓"直接调用"真正的秘密。如图,现在假设有个WebService类,名为Class1,有两个方法:Method1和Method2。当这个WebService被我们用上面提到的方法处理过后,ASP.NET AJAX框架就会自动分析这个类,并且在客户端生成一个这个类的客户端代理(Proxy),这个代理类是一个JavaScript对象,其类名、方法名都和后台类一致。而当我们从客户端的JS脚本调用时,实际上调用的是这个代理类,而代理类则使用XMLHttpRequest对象,通过传统的Ajax方式,调用后台类。这样,我们就感觉好像在前台直接调用后台类似的。

可是……哪里似乎还是不一样……

通过上面的分析,我们知道,ASP.NET AJAX调用后台方法,说到底还是使用的XMLHttpRequest对象,这样传统Ajax的限制,就使得我们不可能真的像在后台调用方法一样方便。

例如,我们在后台都是用"变量=类名.方法名"或者"变量=对象名.方法名"的方式调用,这样变量就直接获取了这个方法的返回值,但是Ajax不行,它必须通过回调函数获取返回值,这一点也体现在了ASP.NET AJAX的使用方法上。

到此,关于"如何在客户端直接调用Web Service中的方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

方法 客户 客户端 后台 对象 页面 代理 学习 代码 变量 类名 配置 传统 实际 实际上 就是 属性 文件 方式 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 浪潮软件有网络安全概念吗 金色平原服务器现状 济南服务器哪家代理商专业 远骥互联网科技有限公司 怎么看navicat数据库大小 数据库中的编号 华南师范大学网络技术 上海软件开发师待遇如何 我的世界服务器禁止tnt指令 民政局网络安全培训 怀柔区智能网络技术口碑推荐 网络安全加秘密 c语言 天津app软件开发公司 警告本网站在国内服务器 系统软件开发的关键 零件供应关系数据库 关系代数 数据库软件测试标准 全球恐怖主义数据库怎么查 青海住房和城乡建设厅数据库 图像软件开发用什么软件 网络安全影响因素及防范 怎么把代码复制到数据库 广州艾雅网络技术有限公司招聘 电视机服务器连接不上是什么原因 计算机网络技术统考真题 一个电脑能装二个数据库吗 数据库指定表容量查询 服务器外部端口设置 企业级数据库架构 武汉容易就业的计算机软件开发
0