Notes中用Ajax调用WebService

由于本人还是在R6的环境下开发,故这个用法还没实验过。只是在逛论坛中无意中看到的,很好奇,故转过来了。如果有不对的地方,请大家多多指教。

以下就是实现的方法,供大家参考:
<html>
        <head>
                <title>通过Ajax通用WebService</title>
        </head>
        <body>
        </body>
        <script>
        /* 通过Ajax调用webService*/
var method = "test1";  //接口方法名称
var webServiceIP = "http://127.0.0.1/";
var webServiceURL = webServiceIP + "jsService.nsf/jsDemoService?OpenWebService";

//定义接口方法参数   此参数格式定义请查看有关SOAP相关文档
var methodParam = '<?xml version="1.0" encoding="utf-8"?>';
methodParam += '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:DefaultNamespace">';
        methodParam += '<soap:Body>';
        methodParam += '<urn:' + method + ' xmlns="' + webServiceIP + '">';  //调用接品的方<urn:方法名 xmlns="服务器IP">
        methodParam += '<a xsi:type="xsd:string">10</a>';   //定义接口方法参数名及参数类型格式为<参数名称 xsi:type="xsd:参数类型"></参数名称>
        methodParam += '<b xsi:type="xsd:string">20</b>';
        methodParam += "</urn:" + method + ">";
        methodParam += "</soap:Body>";
        methodParam += "</soap:Envelope>";
callWebService(methodParam,webServiceURL)


//调用webservcie function
var xml_HTTP=false;
function callWebService(param,webServiceURL){ 
       
                if(window.XMLHttpRequest){
                        xml_HTTP=new XMLHttpRequest();  // Mozilla, Safari,...
                        }
                       
                if(window.ActiveXObject){   //IE
                                try{
                                        xml_HTTP=new ActiveXObject("Msxml2.XMLHTTP");
                                }catch(e){
                                        xml_HTTP=new ActiveXObject("Microsoft.XMLHTTP");
                                        }       
                                }
                if(!(xml_HTTP)) return false;  
                //xmlHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
    xml_HTTP.open("POST", webServiceURL, false);//同步调用  false表法异步通信,true表示同步通信
    xml_HTTP.Send(param);   //接口方法参数
   
    //获取接口返回值
    if((xml_HTTP.readyState==4) &&(xml_HTTP.status==200)){  //readyState==4表示成功请求,200表示服务器成功处理
            var xmlObj=xml_HTTP.responseXml;
            try{  //两种方法获得返回值
            var strText=xmlObj.getElementsByTagName(method+"Return");  //通过解析XML得到返回值
            document.body.innerHTML="返回结果:"+strText.item(0).firstChild.text; //返回调用的值
            }catch(e){
            document.body.innerHTML="返回结果:"+xmlObj.text;
            }
    }
}       
</script>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值