续
上一篇: 用ScriptManager实现Web服务的异步调用
从客户端脚本调用 Web 服务
本主题解释如何使用 ASP.NET 的 AJAX 功能从 ECMAScript (JavaScript) 调用 Web 服务。为了使应用程序能够使用客户端脚本调用 ASP.NET Web 服务,服务器的 Web 服务通信层自动生成 JavaScript 代理类。对于页中 ScriptManager 控件中的 ServiceReference 元素所引用的每个 Web 服务,都会生成一个代理类。
Web 服务可以采用 ASP.NET Web 服务(.asmx 服务)或 Windows Communication Foundation (WCF) 服务(.svc 服务)的形式。如果已创建 ASP.NET Web (.asmx) 服务,则可以修改这些服务以使支持 AJAX 的网页中的脚本可以调用它们。有关更多信息,请参见向客户端脚本公开 Web 服务。如果已创建 WCF 服务,则可以添加终结点以使支持 AJAX 的网页中的脚本可以访问这些服务。有关更多信息,请参见向客户端脚本公开 WCF 服务。
若要调用 Web 服务的方法,请调用生成的 JavaScript 代理类的相应方法。该代理类接下来会与 Web 服务进行通信。
从脚本调用 Web 服务方法是异步过程。若要获取返回值或确定请求何时返回,必须提供成功回调函数。该回调函数在请求成功完成时调用,并且它包含来自 Web 方法调用的返回值(如果有的话)。您还可以提供失败回调函数以处理错误。此外,可以传递用户上下文信息以便在回调函数中使用。
下面的示例演示如何进行以下类型的 Web 服务调用:
调用没有返回值的 Web 服务。
调 用能够返回值的 Web 服务。
调用带参数的 Web 服务方法。
使用 HTTP GET 谓词调用 Web 服务方法。
调用能够返回 XmlDocument 对象的 Web 服务方法。
该示例的第一部分演示一个网 页,该网页使用客户端脚本进行服务调用。
该示例的下一部分演示网页用于调用 Web 服务的客户端脚本。