用JavaScript调用WebService的示例


Posted in Javascript onApril 07, 2008

步骤如下:

下载微软HTC组件:http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/samples/internet/behaviors/library/webservice/default.asp

Web服务WSDL:

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="WS_SYSTEM_LOGIN_SELECT" targetNamespace="SCRM4U_SERVICE" xmlns:tns="SCRM4U_SERVICE" xmlns:wsdlns="SCRM4U_SERVICE" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns1="SCRM4U_SERVICE">
    <document>
        <URL>http://192.168.2.148:8080/SCRM4U_SERVICE/servlet/HLP_PWS_SYSTEM_LOGIN_SELECT.htm</URL>
        <line>?</line>
    </document>
    <types>
        <schema targetNamespace="SCRM4U_SERVICE" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" elementFormDefault="qualified">
            <complexType name="W_S_LOGIN_USER_INFO">
                <all>
                    <element name="W_V_USID" type="xsd:string">
                    </element>
                    <element name="W_V_USER_MEI" type="xsd:string">
                    </element>
                    <element name="W_V_USID2" type="xsd:string">
                    </element>
                    <element name="W_V_REM_PHR" type="xsd:string">
                    </element>
                    <element name="W_V_REM_RES" type="xsd:string">
                    </element>
                    <element name="W_V_USR_AST" type="xsd:string">
                    </element>
                    <element name="W_V_PSN_NO" type="xsd:string">
                    </element>
                    <element name="W_V_MENUROLE_ID" type="xsd:string">
                    </element>
                    <element name="W_V_USR_AST_NM" type="xsd:string">
                    </element>
                    <element name="W_N_USR_AST_PRI_ORD" type="xsd:long">
                    </element>
                    <element name="W_V_SCHOOL_ID" type="xsd:string">
                    </element>
                    <element name="W_V_EXM_NO" type="xsd:string">
                    </element>
                    <element name="W_V_SCRG_NO" type="xsd:string">
                    </element>
                    <element name="W_V_GRNTR_PSN_NO" type="xsd:string">
                    </element>
                </all>
            </complexType>
            <element name="WS_SYSTEM_LOGIN_SELECT.Execute">
                <complexType>
                    <sequence>
                        <element minOccurs="1" maxOccurs="1" name="P_v_userid" type="xsd:string"/>
                        <element minOccurs="1" maxOccurs="1" name="P_v_password" type="xsd:string"/>
                    </sequence>
                </complexType>
            </element>
            <element name="WS_SYSTEM_LOGIN_SELECT.ExecuteResponse">
                <complexType>
                    <sequence>
                        <element minOccurs="1" maxOccurs="1" name="P_s_login_user_info" type="tns1:W_S_LOGIN_USER_INFO"/>
                    </sequence>
                </complexType>
            </element>
        </schema>
    </types>
    <message name="WS_SYSTEM_LOGIN_SELECT.ExecuteSoapIn">
        <part name="parameters" element="tns:WS_SYSTEM_LOGIN_SELECT.Execute"/>
    </message>
    <message name="WS_SYSTEM_LOGIN_SELECT.ExecuteSoapOut">
        <part name="parameters" element="tns:WS_SYSTEM_LOGIN_SELECT.ExecuteResponse"/>
    </message>
    <portType name="WS_SYSTEM_LOGIN_SELECTSoapPort">
        <operation name="Execute">
            <input message="wsdlns:WS_SYSTEM_LOGIN_SELECT.ExecuteSoapIn"/>
            <output message="wsdlns:WS_SYSTEM_LOGIN_SELECT.ExecuteSoapOut"/>
        </operation>
    </portType>
    <binding name="WS_SYSTEM_LOGIN_SELECTSoapBinding" type="wsdlns:WS_SYSTEM_LOGIN_SELECTSoapPort">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="Execute">
            <soap:operation soapAction="SCRM4U_SERVICEaction/AWS_SYSTEM_LOGIN_SELECT.Execute"/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>
    <service name="WS_SYSTEM_LOGIN_SELECT">
        <port name="WS_SYSTEM_LOGIN_SELECTSoapPort" binding="wsdlns:WS_SYSTEM_LOGIN_SELECTSoapBinding">
            <soap:address location="http://192.168.2.148:8080/SCRM4U_SERVICE/servlet/aws_system_login_select"/>
        </port>
    </service>
</definitions>

演示代码:

<html>
<head>
</head>
<script language="javascript">...
function doService(userid, password) ...{

    //service.useService({webservice location},{webservice class name})
    service.useService("http://192.168.2.148:8080/SCRM4U_SERVICE/servlet/aws_system_login_select?wsdl","WS_SYSTEM_LOGIN_SELECT");
    //service.Service.callService({webmethod},{input parameters needed})
    service.WS_SYSTEM_LOGIN_SELECT.callService(showResult, "Execute", userid, password);
}

function showResult(result)...{

    alert(result.value.W_V_USER_MEI);
}
</script>
<body>
<div id="service" style="behavior:url(./webservice.htc)" ></div>
UserName:<input type="text" id="userid" name="userid">
<br/>
PassWord:<input type="text" id="password" name="password">
<br/>
<input type="button" value="callWebservice" onClick="doService(document.getElementById('userid').value,document.getElementById('password').value)"/>
</body>
</html>
注意:如果服务返回值类型是String,直接用result.value即可取到值。

Javascript 相关文章推荐
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
Feb 26 Javascript
100个不能错过的实用JS自定义函数
Mar 05 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
Mar 05 Javascript
jquery.cookie.js用法实例详解
Dec 25 Javascript
分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
Jan 10 Javascript
AngularJS入门教程之AngularJS 模板
Aug 18 Javascript
JavaScript代码里的判断小结
Aug 22 Javascript
微信小程序手势操作之单触摸点与多触摸点
Mar 10 Javascript
Angular4绑定html内容出现警告的处理方法
Nov 03 Javascript
详解AngularJS之$window窗口对象
Jan 17 Javascript
浅谈Vue2.0中v-for迭代语法的变化(key、index)
Mar 06 Javascript
如何构建一个Vue插件并生成npm包
Oct 26 Javascript
HTML中Select不用Disabled实现ReadOnly的效果
Apr 07 #Javascript
javascript add event remove event
Apr 07 #Javascript
JS动画效果代码3
Apr 03 #Javascript
CSS常用网站布局实例
Apr 03 #Javascript
地址栏上的一段语句,改变页面的风格。(教程)
Apr 02 #Javascript
IE和Firefox在JavaScript应用中的兼容性探讨
Apr 01 #Javascript
JavaScript的面向对象方法以及差别
Mar 31 #Javascript
You might like
PHP下用rmdir实现删除目录的三种方法小结
2008/04/20 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
PHP实现的简单组词算法示例
2018/04/10 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
AngularJS入门教程之路由与多视图详解
2016/08/19 Javascript
JQuery.validationEngine表单验证插件(推荐)
2016/12/10 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
2020/06/16 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
python显示生日是星期几的方法
2015/05/27 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
python 文件操作api(文件操作函数)
2016/08/28 Python
基于python 处理中文路径的终极解决方法
2018/04/12 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
python中copy()与deepcopy()的区别小结
2018/08/03 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
python导入坐标点的具体操作
2019/05/10 Python
python版DDOS攻击脚本
2019/06/12 Python
python 图像的离散傅立叶变换实例
2020/01/02 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
Django model class Meta原理解析
2020/11/14 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
2012/11/29 HTML / CSS
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
写出二分查找算法的两种实现
2013/05/13 面试题
课程设计心得体会
2013/12/28 职场文书
作风建设年活动总结
2014/08/27 职场文书
父亲节感言
2015/08/03 职场文书