通过 xmlhttp+webservice( 原始方法 )

using System; 
using System.Web; 
using System.Web.Services; 
using System.Web.Services.Protocols; 
[webservice(namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
public class Service : System.Web.Services.WebService 

public Service () 

//uncomment the following line if using designed components 
//InitializeComponent(); 

[webmethod] 
public string SayHelloTo(string Name) 

return "Hello "+Name; 

}

还是俗了点。:)

2. js 调用 webservice+xmlhttp 的实现部分。

<html> 
<title>Call webservice with javascript and xmlhttp.</title> 
<body> 
<script language="javascript">
<!-- 
//test function with get method. 
function RequestByGet(data){ 
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
//Webservice location. 
var URL="http://localhost:1323/WebSite6/Service.asmx/SayHelloTo?Name=Zach"; 
xmlhttp.Open("GET",URL, false); 
xmlhttp.SetRequestHeader ("Content-Type","text/xml; charset=utf-8"); 
xmlhttp.SetRequestHeader ("SOAPAction","http://tempuri.org/SayHelloTo"); 
xmlhttp.Send(data); 
var result = xmlhttp.status; 
//OK 
if(result==200) { 
document.write(xmlhttp.responseText); 

xmlhttp = null; 

 
//test function with post method 
function RequestByPost(value) 

var data; 
data = '<?xml version="1.0" encoding="utf-8"?>'; 
datadata = 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/">'; 
datadata = data + '<soap:Body>'; 
datadata = data + '<SayHelloTo xmlns="http://tempuri.org/">'; 
datadata = data + '<Name>'+value+'</Name>'; 
datadata = data + '</SayHelloTo>'; 
datadata = data + '</soap:Body>'; 
datadata = data + '</soap:Envelope>'; 
 
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
var URL="http://localhost:1323/WebSite6/Service.asmx"; 
xmlhttp.Open("POST",URL, false); 
xmlhttp.SetRequestHeader ("Content-Type","text/xml; charset=gb2312"); 
xmlhttp.SetRequestHeader ("SOAPAction","http://tempuri.org/SayHelloTo"); 
xmlhttp.Send(data); 
document.write( xmlhttp.responseText); 

//-->
</script> 
 
<input type="button" value="CallWebserviceByGet" onClick="RequestByGet(null)"> 
<input type="button" value="CallWebserviceByPost" onClick="RequestByPost('Zach')"> 
</body> 
</html>

对于使用 post 方法需要发送的那堆东东可以在 webservice 的测试页面中找到,自己拼凑加上对应的参数就可以。

通过 style.behavior 来实现的方法 ( 比较简单 )

function getfemale()

{

// 第一个参数是 webservice 的 url,后面是名称

female.useService("news.asmx?WSDL","news");

// 设置一个回调函数,service 返回结果的时候回调;第一个参数是回调函数的名称,后面的是 webservice 的参数

intCallID=female.news.callService(female_result,"getphoto","female"); // 这里有两个参数 .....

}

function female_result(result)// 回调函数

{

if(result.error)

{

female.innerHTML=result.errorDetail.string;

}

else

{

female.innerHTML=result.value; // 将 webservice 返回的结果写如 div 中

}

}

页面显示部分: <div id="female" style="BEHAVIOR:url(WebService.htc)"></div>

ok,这给我们在静态页调用动态的内容提供了一种途径;

这里如果给 getfemale() 函数加上定时调用的话,就是一种无刷新更新页面的机制了。

缺点是 webservice 会有一定的延迟,即使是本地的 webservice 也会比静态页面慢很多,初次打开页面会感觉很不协调。

第二种方法使用了 style. 代码就简洁多了他使用了 css. 定义了 div 的行为 . 比起第一种方法 , 就易读多了 :)

style="behavior:url(webservice.htc)"

前提条件是 :

if you are using Microsoft IE 5 or later, you can use the behavior/HTML-Component "WebService" to access a Web service. The "WebService" behavior communicates with Web services over HTTP using Simple Object Access Protocol (SOAP).

附注 : 另一个总结帖子在 :http://goody9807.cnblogs.com/archive/2005/08/17/216725.html

calling WebServices using Javascript

if you are using Microsoft IE 5 or later, you can use the behavior/HTML-Component "WebService" to access a Web service. The "WebService" behavior communicates with Web services over HTTP using Simple Object Access Protocol (SOAP).

to use the "WebService" behavior, you must attach it to an element using the STYLE attribute, as follows:

style="behavior:url(webservice.htc)">

转载于:https://www.cnblogs.com/hmyprograming/archive/2012/10/22/2734629.html

JavaScript 调用 Web Service 的多种方法相关推荐

  1. 前台页面通过ajax环境和js调用web service的几种方法

    目录: 1.配置ajax环境 2.js中调用web service (ajax环境) 方法一 3.方法二 4.方法三 5.ajax中的错误处理 //6.写的比较快 如果有疏忽之处  如能指出感激不尽. ...

  2. .NET应用程序中异步调用Web Service的几种方法 come from: veryhappy(wx.net)

    测试程序界面 图一,调用前界面 图二,调用后界面 详细代码实现 闲言少叙,直接进入主题吧.首先一个声明一个类(将来在客户端与服务器间传递): public class Class1     {     ...

  3. VB.NET,C#.NET调用Web Service,利用visual studio 的实现方法

    在VB.NET调用Web Service提供的服务 技术qq交流群:JavaDream:251572072 下面是一篇文章比较详细,其实具体操作很简单,把Web Service服务地址,利用工具(VS ...

  4. 用cxf公布和调用web service

    用cxf发布和调用web service 最近我们的系统需要和一个第三方系统对接,对接的方式是通过web service,所以就学习了一下这方面的东西 用CXF来做web service是比较简单的, ...

  5. 调用Web Service实现天气预报

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 一.概念:Web Service用于消除不同平台.不同语言之间的实现差异,将现有的应用程序发布成开放式服务,从 ...

  6. postman请求soap 请求_postman测试调用web service asmx

    大多数情况都是使用postman来测试调用Restful接口,但是有些老系统用web service写的接口还是不少见.最近我就遇到了,我们之前买的一个系统居然是.net 写的web service, ...

  7. JAVA 调用Web Service

    JAVA 调用Web Service的方法 1.使用HttpClient  用到的jar文件:commons-httpclient-3.1.jar  方法:  预先定义好Soap请求数据,可以借助于X ...

  8. android调用web service(cxf)实例

    Google为ndroid平台开发Web Service提供了支持,提供了Ksoap2-android相关架包 1.下载该夹包可以直接登录http://code.google.com/p/ksoap2 ...

  9. 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(2):处理异步调用中的异常...

    本文来自<ASP.NET AJAX程序设计 第II卷:客户端Microsoft AJAX Library相关>的第三章<异步调用Web Service和页面中的类方法>,请同时 ...

  10. Java 调用Web service 添加认证头(soapenv:Header)

    前言 有时候调用web service 会出现 Message does not conform to configured policy [ AuthenticationTokenPolicy(S) ...

最新文章

  1. xhtml和css概述
  2. Java高并发编程(八):Java并发容器和框架
  3. HDU 1042 N!(高精度阶乘、大数乘法)
  4. python3.5以上版本的保留字总数是_python函数之参数(python3.5)
  5. UVA 1411 - Ants(二分图完美匹配)
  6. 0004-程序流程2之ui-router大意
  7. Redis集群命令行部署工具
  8. 【车间调度】基于matlab粒子群算法求解车间生产调度问题【含Matlab源码 245期】
  9. Mike and Chocolate Thieves(CF #361 Div. 2)
  10. 为什么是“深度”学习而不是宽度?
  11. 互联网行业,常见含金量高的证书,看看你有几个?
  12. DHCP报文抓包分析
  13. PWM、PPM、SBUS、DSM2这四种协议区别
  14. PWA系列 - Web Push 技术
  15. .NET中XML 注释 SandCastle 帮助文件.hhp 使用HTML Help Workshop生成CHM文件
  16. 【数据结构oj】树的度(树和二叉树的相互转化)
  17. 一个定时器实现IO模拟pwm,呼吸灯效果
  18. HTML/CSS 知识点解析
  19. RK3399+XILINX K7 FPGA 应用于雷达通信遥测成像等领域
  20. mysql 导出数据 insert_mysql导入导出数据

热门文章

  1. tomcat8打开闪退_直接双击启动tomcat中的startup.bat闪退原因及解决方法
  2. 如何在原有的cookie里面添加值_【平面设计教程】如何创建一个漂亮又好吃的饼干呢?...
  3. 有关于Java中JFrame方法的基本操作
  4. Sublime Text (崇高文本)
  5. 于Eclipse传导C/C++配置方法开发(20140721新)
  6. ajax 的post方法用例(带循环)
  7. 代码阅读 | 孪生网络目标跟踪的尺度(Scale)计算 (In ATOM)
  8. Unity3D内容加密保护
  9. 边工作边刷题:70天一遍leetcode: day 2
  10. NYOJ——————数的长度(斯特林公式的应用)