AJAX及使用E4X编写Web服务脚本(1)(5)
该脚本程序属于 stockclient.html 的一部分。如果您从本文下载了 ws-ajax1code.zip 文件,将其中的 zip 内容解压,然后使用 Mozilla 打开 stockclient.html,您将会看到如下内容:
图 1. Mozilla 中的 stockclient.html
为了对其进行验证,首先单击 Update URL。该操作通过使用 XMLHttpRequest 对象从 http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl(或者您在 WSDL 框中键入的任意 URL)获取 WSDL 文件,然后使用 E4X 从那里获取端口地址 URL。现在单击 Send,您将会看到 SOAP 请求被填写了。一两秒钟之后,此 SOAP 响应应该同结果字段一起被更新。我们查看一下这些代码。
股票报价客户端的脚本程序
该脚本程序带着对 IBM 的股票价格的 request 调用指定的URL。如果您正在使用 Axis 服务器,那么我们建议使用股票行情自动收录机符号 XXX,这是一种特殊的符号――部署的服务将总是返回一个固定的响应用于该收录机,而不是产生 Web 请求来得到真正的股票价格――因此使用该符号进行测试会好些。
您必须完成的第一个操作就是定义您希望使用的 E4X:
当您按下 Send 按钮时,该脚本程序显示如下:
var s = new Namespace(
"s",
"http://schemas.xmlsoap.org/soap/envelope/");
var envelope =
envelope.s::Body="";
var body = envelope.s::Body;
该操作对任何的 SOAP 请求都是通用的。它只是简单地创建了一个 SOAP 信封,而没有包括任何消息体。该操作的一个等价实现方式如下所示:
var envelope =
但是,前面的代码会容易些,而且也为您提供了指向主体元素的指针。
下一步是要创建消息的主体:
var x = new Namespace("x","urn:xmltoday-delayed-quotes");
body.x::getQuote =
最后,你必须添加正确的符号:
var symbol = document.getElementById("symbol").value;
var getQuote = body.x::getQuote;
getQuote.symbol=symbol;
- 上一篇:Ajax驱动的Web站点
- 下一篇:.net Ajax无刷新技术