jQuery 调用WebService 实例讲解
一直以来,Web程序都在调用WebService,然而WebService的封装相对简单,使得我们在过去只是肤浅地使用它,未曾深入思考其更深层次的应用,仅停留在表面的添加引用和调用。如今,让我们更多可能。
建立一个WebService程序,我们首先需要构建一个具有明确命名空间的WebService。以下是简单的示例代码:
[WebService(Namespace = "
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// 若要允许使用ASP.NET AJAX从脚本中调用此Web服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
在这个WebService中,我们定义了一个名为HelloWorld的WebMethod。这个方法的功能是生成一个包含学生信息的JSON字符串。具体实现如下:
public string HelloWorld()
{
CommonData.Json.ObjectSerialization ser = new CommonData.Json.ObjectSerialization();
Student stu = new Student();
stu.Id = 1;
stu.Name = "hechen";
string json = ser.EntityToJson(stu);
return json;
}
这里需要注意的是,[System.Web.Script.Services.ScriptService]特性是默认注释起来的。如果想用Javascript来调用WebService,就需要取消这个注释。这样,我们的WebService就可以被前端Javascript代码所调用。
通常,WebService方法返回的是XML数据,因为XML是一种通用的数据交换格式。在我们的例子中,WebService返回的是JSON数据,这是因为JSON数据在时更为方便。为了实现这一点,我们使用了实体类序列化成JSON的代码。这样,前端在接收到返回的数据后,可以直接进行和处理,无需再进行复杂的XML操作。
实体对象序列化JSON
在数字世界的角落里,隐藏着一种名为JSON的神秘力量。它能够将实体对象转化为一种简洁而通用的数据格式,便于在各种平台和系统间轻松传递信息。让我们来深入了解一下这一过程吧。
在C的世界里,有一个叫做ObjectSerialization的类,它承载着将实体对象转化为JSON的使命。这个类有两个核心属性:Entity和JsonData。Entity存储着需要被序列化的对象,而JsonData则承载着转化后的JSON数据。
这个类拥有两个构造方法,一个无参构造方法,另一个是带有实体参数的构造方法。通过这两个构造方法,我们可以轻松地创建ObjectSerialization对象,并设置需要序列化的实体对象。
接下来,让我们看看如何将实体对象序列化为JSON数据字符串。EntityToJson方法完成了这一任务。它使用DataContractJsonSerializer类来将实体对象的类型信息转化为JSON格式的数据。这个过程就像是把实体对象装进了一个神秘的魔法盒里,等待被传送至远方。
这个类还提供了从JSON数据转换为对象的方法。GetObjectJson方法可以接收一个JSON数据格式的字符串,并将其转换回对应的实体对象。这个过程就像是打开了那个魔法盒,将里面的数据重新还原成实体对象。
现在,让我们转向前端程序,使用Jquery来调用WebService并处理返回的JSON数据。我们需要引入jquery和json2这两个js文件,它们为我们提供了处理JSON和Ajax请求的能力。
在文档加载完成后,我们给btnClick按钮绑定一个点击事件。在这个事件里,我们使用Ajax发起一个POST请求到WebService的HelloWorld方法。在请求发送之前,我们设置了请求头的Content-Type为"application/json; charset=utf-8",表示我们发送的数据是JSON格式的。
当请求成功返回后,我们在suess回调函数中处理返回的JSON数据。我们通过data.d获取到返回的JSON字符串,然后使用JSON2.parse方法将其为JavaScript对象。我们弹出这个对象的id属性。这个过程就像是解开神秘面纱,将JSON数据还原成我们可以直接操作的对象。
在这个过程中,需要注意的是,我们序列化的实体对象必须使用可序列化特性修饰,如Serialiable。否则,它无法被正确序列化为JSON数据字符串。这是一个重要的前提条件,必须满足才能保证序列化的成功。
在构建WebService时,我们不仅要设定请求的参数,还要确定返回的数据格式,通常采用JSON格式。其中,“data”字段是用于解释返回值的。值得注意的是,“data”是一个以json格式呈现的字符串,其对象名为“d”,因此我们可以通过“data.d”来访问其中的信息。
如果我们希望以更直观、更便捷的方式访问json中的键值,那么可以借助JSON2.js这一工具。它能将json字符串转换成json对象,让我们能够像操作普通对象一样,通过“.”操作符来访问各个键值。
当我们需要调用带有参数的WebService时,可以在“data”中指定传递的参数。这些参数的名字必须与WebService中方法的参数名保持一致。这样,我们就能确保数据的准确传递和接收。
在编写这个例子时,我并非一帆风顺。后来,我查阅了大量关于WebService的资料,发现我们需要对WebService中的Web.config配置文件进行修改。只有这样,我们才能以URL的形式访问WebService。
具体的配置方法如下:
在System.web这个节点下,我们需要添加如下配置:
```xml
```
通过以上的配置,我们可以确保WebService能够接受HttpGet和HttpPost两种协议的请求,从而以URL的形式进行访问。
以上就是本文的全部内容,希望能为大家提供一个参考,同时也希望大家能够支持狼蚁SEO。在开发过程中,不断地学习和新的技术,会使我们的技能得到提升,也会让我们在解决问题时更加游刃有余。
seo排名培训
- jQuery 调用WebService 实例讲解
- php+js实现的拖动滑块验证码验证表单操作示例【
- JS实现调用本地摄像头功能示例
- ajax+php 谷歌搜索框自动填充功能 实例代码
- webpack 模块热替换原理
- 你应该知道PHP浮点数知识
- vue+webpack实现异步加载三种用法示例详解
- angularjs ocLazyLoad分步加载js文件实例
- jQuery实现的瀑布流加载效果示例
- centos 7系统下安装laravel运行环境的步骤详解
- js对ajax返回数组的处理介绍
- jQuery实现简洁的导航菜单效果
- Vue计算属性的学习笔记
- ThinkPHP框架整合微信支付之Native 扫码支付模式一
- 探讨AngularJs中ui.route的简单应用
- 原生js实现淘宝放大镜效果