网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > DotNet > XML&Web > Javascript调用Webservice的汇集  

Javascript调用Webservice的汇集

2007-01-06  作者:bitsCN整理  来源:中国IT实验室收集整理  点评 投稿 收藏

通过xmlhttp+webservice(原始方法)

网管u家u.bitscn@com

原文地址:http://netboy.cnblogs.com/archive/2006/02/18/333260.html

网管u家u.bitscn@com

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

网管下载dl.bitscn.com

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

中国网管联盟bitsCN.com

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

网管u家u.bitsCN.com

[webmethod]
public string SayHelloTo(string Name) {
return "Hello "+Name;
}

网管下载dl.bitscn.com

}
还是俗了点。:)

网管网www.bitscn.com

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

<html>
<title>
Call webservice with javascript and xmlhttp.
</title>
<body>
<script language="javascript"> 网管u家u.bitscn@com

//test function with get method.
function RequestByGet(data){

网管网www_bitscn_com

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;
}

网管网www_bitscn_com

//test function with post method
function RequestByPost(value)
{
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:Body>';
data = data + '<SayHelloTo xmlns="http://tempuri.org/">';
data = data + '<Name>'+value+'</Name>';
data = data + '</SayHelloTo>';
data = data + '</soap:Body>';
data = data + '</soap:Envelope>'; 网管论坛bbs_bitsCN_com

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);

网管u家u.bitsCN.com

}

网管论坛bbs_bitsCN_com

</script>

网管网www_bitscn_com

<input type="button" value="CallWebserviceByGet" onClick="RequestByGet(null)">
<input type="button" value="CallWebserviceByPost" onClick="RequestByPost('Zach')">

网管网www.bitscn.com

</body>
</html>
对于使用post方法需要发送的那堆东东可以在webservice的测试页面中找到,自己拼凑加上对应的参数就可以。 中国网管联盟bitsCN.com

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

网管u家u.bitscn@com

原文地址:http://www.zahui.com/html/4/37953.htm 网管论坛bbs_bitsCN_com

<script language="javascript">
function getfemale()
{
//第一个参数是webservice的url,后面是名称
female.useService("news.asmx?WSDL","news");
//设置一个回调函数,service返回结果的时候回调;第一个参数是回调函数的名称,后面的是webservice的参数
intCallID=female.news.callService(female_result,"getphoto","female"); //这里有两个参数.....
}

网管论坛bbs_bitsCN_com

function female_result(result)//回调函数
{
if(result.error)
{
female.innerHTML=result.errorDetail.string;
}
else
{
female.innerHTML=result.value; //将webservice返回的结果写如div中
}
}
</script>
页面显示部分: <div id="female" style="BEHAVIOR:url(WebService.htc)"></div> 中国网管联盟bitsCN.com

ok,这给我们在静态页调用动态的内容提供了一种途径;
这里如果给getfemale()函数加上定时调用的话,就是一种无刷新更新页面的机制了。
缺点是webservice会有一定的延迟,即使是本地的webservice也会比静态页面慢很多,初次打开页面会感觉很不协调。 网管网www.bitscn.com

  中国网管联盟bitsCN.com

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

style="behavior:url(webservice.htc)" 网管u家u.bitsCN.com

前提条件是: 网管联盟bitsCN_com

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). 网管联盟bitsCN@com

附注:另一个总结帖子在:http://goody9807.cnblogs.com/archive/2005/08/17/216725.html 中国网管论坛bbs.bitsCN.com

  网管网www_bitscn_com

calling WebServices using Javascript

网管网www_bitscn_com

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).

网管bitscn_com

to use the "WebService" behavior, you must attach it to an element using the STYLE attribute, as follows: 网管网www.bitscn.com

 

中国网管联盟bitsCN.com

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

网管论坛bbs_bitsCN_com


TAGs   汇集   调用   data   using   webservice   var   function   with      
 上一篇:Acegi安全系统的配置   下一篇:没有了
相关文章列表
Javascript调用Webservice的汇集 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.学好基本功之熟练调用 Web Service
2.XML Web Service完全实例解析
3.Acegi安全系统的配置
4.Xml WebService完全实例解析(2)
5.Xml WebService完全实例解析(1)
6.Javascript调用Webservice的汇集
7.异步WebService调用
8.用C#与XML创建动态分层菜单
9.关于webservice的异步调用实例
10.Xml WebService完全实例解析(3)
最新推荐文章:
1.关于Debug和Release之本质区别的讨论
2.客户端访问Web Service方法的一个细节
3.如何让WebServer返回指的定XML内容
4.如何用XML保存配置设定
5.使用 XML 通过 Java 类定义 Web服务
6.XML文件读取数据绑定到DropDownList
7.WebService中使用自定义类的解决方法
8.Web Service 中的身份验证策略
9.如何使用XmlSerializer类控制串行化
10.XML Web services 基础结构
网管论坛交流:
·不疯魔不成活
·令你大开眼界的真正标准化机房,已整理重
·华为HCSE OSPF路由协议培训教材 V3.0
·为赈灾,女孩舍身拍“裸照”
·Windows Server 2003服务器群集创建和配
·exchange2k3全套官方资料
·双儿一周岁了。。。特殊的礼物来啦。。
·存储备份技术版块守则
·无盘技术交流区守则
·DOS命令基础大全之命令详解<作者吐血