JS调用webservice的两种方式
协议肯定是使用http协议,因为soap协议本身也是基于http协议。期中第二种方式:只有webservice3.5以后版本才可以成功
第一种方式:构造soap格式的body,注意加粗的黄色标识,比如:
createXMLHttpRequest();
var data;
data = '<?xml version="1.0" encoding="utf-8"?>';
data = data + '<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/">';
data = data + "<soap:Header>"
data = data + '<UserSoapHeader xmlns="http://tempuri.org/">'
data = data + "<UserName>admin</UserName>"
data = data + "<Pwd>faaaa</Pwd>"
data = data + "</UserSoapHeader>"
data = data + "</soap:Header>"
data = data + '<soap:Body>';
data = data + '<'+method+' xmlns="'+_Namespace+'">';
for(var i=0;i<variable.length;i++)
{
data = data + '<'+variable[i]+'>'+value[i]+'</'+variable[i]+'>';
}
data = data + '</'+method+'>';
data = data + '</soap:Body>';
data = data + '</soap:Envelope>';
xmlhttp.onreadystatechange=handleStateChange;
xmlhttp.Open("POST",url, true);
xmlhttp.SetRequestHeader ("Content-Type","text/xml; charset=utf-8");
xmlhttp.SetRequestHeader ("Content-Length",getlen(data));
xmlhttp.SetRequestHeader ("SOAPAction",_Namespace+method);
xmlhttp.Send(data);
第二种方式(我没使用过,想着不会成功):构造json格式的body,比如:
createXMLHttpRequest();
url:http://....../a.asmx/webservice方法名
body使用json数据格式
xmlhttp.SetRequestHeader ("Content-Type","application/json; charset=utf-8");
xmlhttp.SetRequestHeader ("Content-Length",getlen(body));
转载于:https://www.cnblogs.com/syf/p/4125642.html
JS调用webservice的两种方式相关推荐
- WebService的两种方式SOAP和REST比较 (转)
由于第一次接触WebService,对于很多概念不太理解,尤其是看到各个OpenAPI的不同提供方式时,更加疑惑.如google map api采用了AJAX方式,通过javascript提供API, ...
- WebService的两种方式SOAP和REST比较
从目前的两种技术发展来看,两种方法都是webservice( RPC ) 的实现,调用一个接口,然后取得一些参数,进行跨系统的通信. 从标准上看,REST是一种思想,在http(s)上套了一些操作守则 ...
- vue 调用webservice_调用webService的几种方式
转自:http://blog.csdn.net/u011165335/article/details/51345224 一.概览 方式1: HttpClient:可以用来调用webservie服务,也 ...
- JS定义函数的两种方式:函数声明和函数表达式
函数声明 关于函数声明的方式,它的一个重要的特性就是函数声明提升(function declaration hoisting),意思是在执行代码之前会先读取函数声明.这就意味着可以把函数声明放在调用它 ...
- asp.net远程调用WebService的两种方法
一,静态方法 在"解决方案'项目名'" -> 相应的文件夹,如"Web References" ->右键"添加WEB引用"-&g ...
- java调用python库pyd_Java调用Python的两种方式
1.前言 在与第三方程序或语言进行交互时,需要Java调用 2.使用Runtime的exec函数 在使用时需注意img = sys.argv[1]取下标为1的参数 package com; impor ...
- c#调用接口的两种方式
1.get请求类型接口调用 public JObject GetDate(string url){url = RequestIP + url;//比如[http://192.168.xx.xx:123 ...
- 原声ajax的函数式封装,原生 js 封装 ajax的两种方式(get,post)
/*ajax封装 @param option:传入一个对象 属性分别为(顺序可以打乱): url:请求的路径 type:请求的不同类型get或post data:发送的数据,格式:key1=value ...
- js 页面跳转两种方式(原页面跳转,打开新标签页)
1 页面跳转(原页面跳转) (1)a标签实现 <a href="https://blog.csdn.net/qq_38974638">旭东怪的博客</a> ...
- java调用打印机的两种方式
一.用java中自带的PrintServiceLookup实现 import javax.imageio.ImageIO; import javax.print.*; import javax.pri ...
最新文章
- 庆祝深圳.net俱乐部成立
- 使用AndroidStudio编译NDK的方法及错误解决方案
- ELKStack入门篇(三)之logstash收集日志写入redis
- hyperledge工具-cryptogen
- C++ const 关键字小结
- IOS开发基础之模拟科技头条项目案例32
- AUTOSAR专业知识篇(六)-自动驾驶传感器的选择与布置
- leetcode1405. 最长快乐字符串(贪心算法)
- smokeping主从同步报错
- 层次化防御保证企业门户网站安全
- 7z替换exe文件内容不能替换文件_Windows小技巧 批处理文件实现目录下文件批量打包压缩...
- 【sklearn第六讲】特征提取(下)
- 归并排序MergeSort
- iOS多线程——GCD底层探索中(dispatch_async与dispatch_sync源码)
- linux 改变输出端口,linux – 更改ssh端口后的Fail2ban设置
- 【Linux】gcc编译工具,断点的设置,gdb调试
- 【数据湖Hudi的概念】Table Types、Indexing和Metadata Table
- 还在原地踏步,提高软件测试能力的方法你知道吗?
- SumToken钱包怎么样_SUMTOKEN钱包靠谱吗
- 无纸化车间是怎样实现的,能给企业生产带来什么?