防未病平台@D1V1网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 155|回复: 0

JS调用webservice的通用函数

[复制链接]

6

主题

6

主题

6

主题

一杠会员

Rank: 1

积分
35
发表于 2013-1-19 16:33:38 | 显示全部楼层 |阅读模式
  1. 调用:

  2. RequestByPost(method,variable,value,url,_Namespace)

  3. method:webservice的方法名

  4. variable:webservice的方法的变量名数组

  5. value:webservice的方法的变量的值的数组

  6. url:请求的地址(asmx文件地址)

  7. _Namespace:webservice的命名空间

  8. <script language="javascript" type="text/javascript">
  9. // <!CDATA[

  10. //define
  11. var xmlhttp;
  12. var value=new Array();
  13. var variable=new Array();

  14. //Show Response MSG.
  15. function handleStateChange()
  16. {
  17.   var h=document.getElementById("Label1");
  18.   if(xmlhttp.readyState==4)
  19.   {
  20.     if(xmlhttp.status==200)
  21.     {
  22.       alert(xmlhttp.responseText);
  23.       h.innerHTML=xmlhttp.responseText;
  24.       //h.innerHTML=xmlhttp.responseXML;
  25.     }
  26.     else if(xmlhttp.status==404)
  27.     {
  28.       h.innerHTML="
  29. 找不到请求的服务器资源!";
  30.     }
  31.   }
  32.   else if(xmlhttp.readyState==0)
  33.   {
  34.     h.innerHTML="
  35. 未初始化!";
  36.   }
  37.   else if(xmlhttp.readyState==1)
  38.   {
  39.     h.innerHTML="
  40. 正在加载……!";
  41.   }
  42.   else if(xmlhttp.readyState==2)
  43.   {
  44.     h.innerHTML="
  45. 已经加载完成!";
  46.   }
  47.   else if(xmlhttp.readyState==3)
  48.   {
  49.     h.innerHTML="
  50. 正在和服务器交互";
  51.   }
  52.   else
  53.   {
  54.     h.innerHTML=xmlhttp.responseXML;
  55.   }

  56. }

  57. //Get Request Data's length
  58. function getlen(str)
  59. {
  60. var bytesCount=0;
  61. for (var i = 0; i < str.length; i++)
  62. {
  63. var c = str.charAt(i);
  64. if (/^[\u0000-\u00ff]$/.test(c)) //匹配双字节
  65.    {
  66. bytesCount += 1;
  67. }
  68. else
  69. {
  70. bytesCount += 2;
  71. }
  72. }
  73. return bytesCount;

  74. }

  75. //Create XMLHttpRequest Object
  76.  function createXMLHttpRequest()
  77. {

  78.   if(window.ActiveXObject)
  79.   {
  80.     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  81.   }
  82.   else if(window.XMLHttpRequst)
  83.   {
  84.     xmlhttp=new XMLHttpRequest();
  85.   }
  86. }

  87. //send Request By HTTP POST

  88. function RequestByPost(method,variable,value,url,_Namespace)
  89. {
  90. createXMLHttpRequest();
  91. var data;
  92. data = '<?xml version="1.0" encoding="utf-8"?>';
  93. 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/">';
  94. data = data + '<soap:Body>';
  95. data = data + '<'+method+' xmlns="'+_Namespace+'">';
  96. for(var i=0;i<variable.length;i++)
  97. {
  98.   data = data + '<'+variable[i]+'>'+value[i]+'</'+variable[i]+'>';

  99. }
  100. data = data + '</'+method+'>';
  101. data = data + '</soap:Body>';
  102. data = data + '</soap:Envelope>';

  103. xmlhttp.onreadystatechange=handleStateChange;
  104. xmlhttp.Open("POST",url, true);
  105. xmlhttp.SetRequestHeader ("Content-Type","text/xml; charset=utf-8");
  106. xmlhttp.SetRequestHeader ("Content-Length",getlen(data));
  107. xmlhttp.SetRequestHeader ("SOAPAction",_Namespace+method);
  108. xmlhttp.Send(data);
  109. alert(data);
  110. }

  111. //CallHelloWorld!
  112. function SayHello_onclick() {
  113. //alert(document.getElementById('YourName').value);
  114.  RequestByPost("HelloWorld",new Array("msg"),new Array(document.getElementById('YourName').value),"WebService.asmx","localhost/");
  115. }
  116. //WeatherReport Test:
  117. function Button2_onclick() {
  118. RequestByPost("getWeatherbyCityName",new Array("theCityName"),new Array(document.getElementById('CityName').value),"http://www.webxml.com.cn/WebServices/WeatherWebService.asmx","http://WebXml.com.cn/");
  119. }

  120. // ]]>
  121. </script>
  122. ////////////////////////////////
  123. ////////Sixi. Let it be.../////
  124. //////////////////////////////
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|版权声明|项目入住:点击会员认证|微信:wx303770168QQ:303770168|防未病平台@D1V1网 ( 沪ICP备05028199号  

GMT+8, 2024-11-22 16:37 , Processed in 0.064187 second(s), 26 queries .

Powered by D1V1.com

© 2005-2030

返回顶部