jQuery调用WebService的实现代码


Posted in Javascript onJune 19, 2011

一个例子说尽:
1、.aspx中:

<div class="button" id="btn1"><a href="#">HelloWorld</div> 
<div class="button" id="btn2"><a href="#">传入参数</a></div> 
<div class="button" id="btn3"><a href="#">返回集合</a></div> 
<div class="button" id="btn4"><a href="#">返回复合类型</a></div> 
<div class="button" id="btn5"><a href="#">返回DataSet(XML)</a></div> 
</div><div id="loading">服务器处理中,请稍后</div> 
<div id="dictionary"></div>

2、WebService中:
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
[System.Web.Script.Services.ScriptService] //如果要用jquery调用WebService则取消前面的注释 
public class WebService : System.Web.Services.WebService 
{ 
public WebService() 
{ 
//如果使用设计的组件,请取消注释以下行 
//InitializeComponent(); 
} 
[WebMethod] 
public string HelloWorld() 
{ 
return "Hello World"; 
} 
[WebMethod] 
public string GetWish(string value1, string value2, string value3, int value4) 
{ 
return string.Format("祝您在{3}年里 {0}、{1}、{2}", value1, value2, value3, value4); 
} 
[WebMethod] 
public List<int> GetArray(int i) 
{ 
List<int> list = new List<int>(); 
while (i >= 0) 
{ 
list.Add(i--); 
} 
return list; 
} 
[WebMethod] 
public Class1 GetClass() 
{ 
Class1 a = new Class1(); 
a.ID = "1"; 
a.Value = "牛年大吉"; 
return a; 
} 
[WebMethod] 
public DataSet GetDataSet() 
{ 
DataSet ds = new DataSet(); 
DataTable dt = new DataTable("Table1"); 
dt.Columns.Add("ID", Type.GetType("System.String")); 
dt.Columns.Add("Value", Type.GetType("System.String")); 
DataRow dr = dt.NewRow(); 
dr["ID"] = "1"; 
dr["Value"] = "新年快乐"; 
dt.Rows.Add(dr); 
dr = dt.NewRow(); 
dr["ID"] = "2"; 
dr["Value"] = "万事如意"; 
dt.Rows.Add(dr); 
ds.Tables.Add(dt); 
return ds; 
} 
} 
//自定义的类,只有两个属性 
public class Class1 
{ 
public string ID { get; set; } 
public string Value { get; set; } 
}

3、JS中:
<script language="javascript" type="text/javascript"> 
//无参数 
$(function() { 
$("#btn1").click(function() { 
$.ajax({ 
type: "POST", //访问webservice使用POST方式请求 
contentType: "application/json;utf-8", //WebService会返回Json类型 
url: "WebService.asmx/HelloWorld", //调用WebService方法 
data: "{}", //要传递的参数,没有传参时,也一定要写上 
dataType: "json", 
success: function(result) { 
result =result.d;//返回d后面的json内容 
$("#dictionary").append(result); 
} 
}); 
}); 
}); 
//有参数 
$(function() { 
$("#btn2").click(function() { 
$.ajax({ 
type: "POST", 
contentType: "application/json;utf-8", 
url: "WebService.asmx/GetWish", 
data: "{value1:'万事如意',value2:'心想事成',value3:'财运滚滚',value4:2009}", 
dataType: "json", 
success: function(result) { 
result =result.d; 
$("#dictionary").html(result); 
} 
}); 
}); 
}); 
//返回集合 
$(function() { 
$("#btn3").click(function() { 
$.ajax({ 
type: "POST", 
contentType: "application/json;utf-8", 
url: "WebService.asmx/GetArray", 
data: "{i:10}", 
dataType: "json", 
success: function(result) { 
result =result.d; 
$(result).each(function() { 
$("#dictionary").append(this.toString() + " "); 
}); 
} 
}); 
}); 
}); 
//返回实体 
$(function() { 
$("#btn4").click(function() { 
$.ajax({ 
type: "POST", 
contentType: "application/json;utf-8", 
url: "WebService.asmx/GetClass", 
data: "{}", 
dataType: 'json', 
success: function(result) { 
result =result.d; 
$("#dictionary").append(result.ID + " " + result.Value); 
} 
}); 
}); 
}); 
//返回DataSet(XML) 
$(document).ready(function() { 
$('#btn5').click(function() { 
$.ajax({ 
type: "POST", 
url: "WebService.asmx/GetDataSet", 
data: "{}", 
dataType: 'xml', //返回的类型为XML ,和前面的Json,不一样了 
success: function(result) { 
//演示一下捕获 
try { 
$(result).find("Table1").each(function() { 
$('#dictionary').append($(this).find("ID").text() + " " + $(this).find("Value").text()); 
}); 
} 
catch (e) { 
alert(e); return; 
} 
}, 
error: function(result, status) { //如果没有上面的捕获出错会执行这里的回调函数 
if (status == 'error') { 
alert(status); 
} 
} 
}); 
}); 
}); 
//Ajax 为用户提供反馈,利用ajaxStart和ajaxStop 方法,演示ajax跟踪相关事件的回调,他们两个方法可以添加给jQuery对象在Ajax前后回调 //但对与Ajax的监控,本身是全局性的 
$(document).ready(function() { 
$('#loading').ajaxStart(function() { 
$(this).show(); 
}).ajaxStop(function() { 
$(this).hide(); 
}); 
}); 
// 鼠标移入移出效果,多个元素的时候,可以使用“,”隔开 
$(document).ready(function() { 
$('div.button').hover(function() { 
$(this).addClass('hover'); 
}, function() { 
$(this).removeClass('hover'); 
}); 
}); 
</script>

4、效果
jQuery调用WebService的实现代码
Javascript 相关文章推荐
读jQuery之三(构建选择器)
Jun 11 Javascript
侧栏跟随滚动的简单实现代码
Mar 18 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
Sep 18 Javascript
页面按钮禁用与解除禁用的方法
Feb 19 Javascript
JS动态创建DOM元素的方法
Jun 09 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
Jun 21 Javascript
jQuery Validate插件ajax方式验证输入值的实例
Dec 21 jQuery
动态Axios的配置步骤详解
Jan 12 Javascript
vue使用xe-utils函数库的具体方法
Mar 06 Javascript
详解从Vue-router到html5的pushState
Jul 21 Javascript
vue移动端微信授权登录插件封装的实例
Aug 28 Javascript
jQuery实现简单聊天室
Feb 08 jQuery
非常棒的10款jQuery 幻灯片插件
Jun 14 #Javascript
在jquery中处理带有命名空间的XML数据
Jun 13 #Javascript
jquery 与NVelocity 产生冲突的解决方法
Jun 13 #Javascript
用Juery网页选项卡实现代码
Jun 13 #Javascript
读jQuery之三(构建选择器)
Jun 11 #Javascript
读jQuery之二(两种扩展)
Jun 11 #Javascript
读jQuery之一(对象的组成)
Jun 11 #Javascript
You might like
php完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
php中如何同时使用session和cookie来保存用户登录信息
2013/07/05 PHP
php中{}大括号是什么意思
2013/12/01 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
PHP实现的sqlite数据库连接类
2014/12/12 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
如何在PHP中读写文件
2020/09/07 PHP
表单提交时自动复制内容到剪贴板的js代码
2007/03/16 Javascript
Jquery选中或取消radio示例
2013/09/29 Javascript
浅析jQuery(function(){})与(function(){})(jQuery)之间的区别
2014/01/09 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
浅析Ajax语法
2016/12/05 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
python算法学习之基数排序实例
2013/12/18 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
Python安装官方whl包和tar.gz包的方法(推荐)
2017/06/04 Python
详解Python中的type和object
2018/08/15 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
python设定并获取socket超时时间的方法
2019/01/12 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
CSS3 transforms应用于背景图像的解决方法
2019/04/16 HTML / CSS
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
CAD制图人员的自荐信
2014/02/07 职场文书
安全生产责任书
2014/03/12 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
我的1919观后感
2015/06/03 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python