协议肯定是使用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();

urlhttp://....../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的两种方式相关推荐

  1. WebService的两种方式SOAP和REST比较 (转)

    由于第一次接触WebService,对于很多概念不太理解,尤其是看到各个OpenAPI的不同提供方式时,更加疑惑.如google map api采用了AJAX方式,通过javascript提供API, ...

  2. WebService的两种方式SOAP和REST比较

    从目前的两种技术发展来看,两种方法都是webservice( RPC ) 的实现,调用一个接口,然后取得一些参数,进行跨系统的通信. 从标准上看,REST是一种思想,在http(s)上套了一些操作守则 ...

  3. vue 调用webservice_调用webService的几种方式

    转自:http://blog.csdn.net/u011165335/article/details/51345224 一.概览 方式1: HttpClient:可以用来调用webservie服务,也 ...

  4. JS定义函数的两种方式:函数声明和函数表达式

    函数声明 关于函数声明的方式,它的一个重要的特性就是函数声明提升(function declaration hoisting),意思是在执行代码之前会先读取函数声明.这就意味着可以把函数声明放在调用它 ...

  5. asp.net远程调用WebService的两种方法

    一,静态方法 在"解决方案'项目名'" -> 相应的文件夹,如"Web References" ->右键"添加WEB引用"-&g ...

  6. java调用python库pyd_Java调用Python的两种方式

    1.前言 在与第三方程序或语言进行交互时,需要Java调用 2.使用Runtime的exec函数 在使用时需注意img = sys.argv[1]取下标为1的参数 package com; impor ...

  7. c#调用接口的两种方式

    1.get请求类型接口调用 public JObject GetDate(string url){url = RequestIP + url;//比如[http://192.168.xx.xx:123 ...

  8. 原声ajax的函数式封装,原生 js 封装 ajax的两种方式(get,post)

    /*ajax封装 @param option:传入一个对象 属性分别为(顺序可以打乱): url:请求的路径 type:请求的不同类型get或post data:发送的数据,格式:key1=value ...

  9. js 页面跳转两种方式(原页面跳转,打开新标签页)

    1 页面跳转(原页面跳转) (1)a标签实现 <a href="https://blog.csdn.net/qq_38974638">旭东怪的博客</a> ...

  10. java调用打印机的两种方式

    一.用java中自带的PrintServiceLookup实现 import javax.imageio.ImageIO; import javax.print.*; import javax.pri ...

最新文章

  1. 庆祝深圳.net俱乐部成立
  2. 使用AndroidStudio编译NDK的方法及错误解决方案
  3. ELKStack入门篇(三)之logstash收集日志写入redis
  4. hyperledge工具-cryptogen
  5. C++ const 关键字小结
  6. IOS开发基础之模拟科技头条项目案例32
  7. AUTOSAR专业知识篇(六)-自动驾驶传感器的选择与布置
  8. leetcode1405. 最长快乐字符串(贪心算法)
  9. smokeping主从同步报错
  10. 层次化防御保证企业门户网站安全
  11. 7z替换exe文件内容不能替换文件_Windows小技巧 批处理文件实现目录下文件批量打包压缩...
  12. 【sklearn第六讲】特征提取(下)
  13. 归并排序MergeSort
  14. iOS多线程——GCD底层探索中(dispatch_async与dispatch_sync源码)
  15. linux 改变输出端口,linux – 更改ssh端口后的Fail2ban设置
  16. 【Linux】gcc编译工具,断点的设置,gdb调试
  17. 【数据湖Hudi的概念】Table Types、Indexing和Metadata Table
  18. 还在原地踏步,提高软件测试能力的方法你知道吗?
  19. SumToken钱包怎么样_SUMTOKEN钱包靠谱吗
  20. 无纸化车间是怎样实现的,能给企业生产带来什么?

热门文章

  1. 关于ASP.Net的导入导出(6)
  2. cannot help doing用法
  3. 转:开源数据库中间件MyCat实现数据库读写分离、分表分库指南
  4. AutoLayout 的一些坑
  5. 解决unity3d发布的网页游戏放到服务器上无法使用的问题
  6. mysql中的函数与存储过程
  7. opcache引起的“php-cgi.exe - FastCGI 进程意外退出”,事件ID487
  8. 第一次作业(构建之法8,16读后感)
  9. 输入两个整数,求他们相除的余数
  10. 好的网站收藏---长期更新---长期更新---长期更新---长期更新--