您的位置: 首页 arrow 技术资料 arrow web服务器 arrow AJAX及使用E4X编写Web服务脚本系列之四  

 

新闻快讯

      上海新仓信息技术有限公司是一家专注于中小企业信息化服务的专业技术服务提供商。公司在几年的服务过程中积累了丰富的经验,推出了自己的特色服务产品,基于qmail的大容量webmail系统,基于squid的网站加速系统(CDN),基于lvs的负载均衡系统等等一系列的基于开源软件的特色服务,为企业提供性价比高的服务。
   

 


 
AJAX及使用E4X编写Web服务脚本系列之四
2006-01-12
股票报价客户端样本

该脚本程序属于 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:

<script type="text/javascript;e4x=1">


当您按下 Send 按钮时,该脚本程序显示如下:

var s = new Namespace(

"s",

"http://schemas.xmlsoap.org/soap/envelope/");

var envelope = <s:Envelope xmlns:s={s}/>;

envelope.s::Body="";

var body = envelope.s::Body;


该操作对任何的 SOAP 请求都是通用的。它只是简单地创建了一个 SOAP 信封,而没有包括任何消息体。该操作的一个等价实现方式如下所示:

var envelope = 

<s:Envelope xmlns:s=

"http://schemas.xmlsoap.org/soap/envelope/">

<s:Body/>

</s:Envelope>


但是,前面的代码会容易些,而且也为您提供了指向主体元素的指针。下一步是要创建消息的主体:

var x = new Namespace("x","urn:xmltoday-delayed-quotes");

body.x::getQuote = <x:getQuote xmlns:x={x}/>;


最后,你必须添加正确的符号:

var symbol = document.getElementById("symbol").value; 

var getQuote = body.x::getQuote;

getQuote.symbol=symbol;

用户登录
用户名

密码

记住我
忘记密码
没有账户? 马上注册
友情链接
申请链接