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 相关文章推荐
tangram框架响应式加载图片方法
Nov 21 Javascript
js获取 type=radio 值的方法
May 09 Javascript
JavaScript的内存释放问题详解
Jan 21 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
Apr 25 Javascript
深入浅析JavaScript的API设计原则
Jun 14 Javascript
深入浅析knockout源码分析之订阅
Jul 12 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
Oct 16 Javascript
Bootstrap进度条实现代码解析
Mar 07 Javascript
原生js编写2048小游戏
Mar 17 Javascript
vue配置请求本地json数据的方法
Apr 11 Javascript
详解Angular6.0使用路由步骤(共7步)
Jun 29 Javascript
JavaScript实现省市区三级联动
Feb 13 Javascript
非常棒的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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
Terran兵种介绍
2020/03/14 星际争霸
PHP聊天室技术
2006/10/09 PHP
怎样去阅读一份php源代码
2009/08/21 PHP
php中解析带中文字符的url函数分享
2015/01/20 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
xss文件页面内容读取(解决)
2010/11/28 Javascript
图片onload事件触发问题解决方法
2011/07/31 Javascript
jquery获取table中的某行全部td的内容方法
2013/03/08 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
Javascript简写条件语句(推荐)
2016/06/12 Javascript
AngularJS实现分页显示数据库信息
2016/07/01 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
2019/07/02 Javascript
python实现监控linux性能及进程消耗性能的方法
2014/07/25 Python
使用Python的判断语句模拟三目运算
2015/04/24 Python
python编程开发之类型转换convert实例分析
2015/11/13 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
详解python配置虚拟环境
2019/04/08 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
美国眼镜网:GlassesUSA
2017/09/07 全球购物
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
公司活动方案范文
2014/03/06 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
2015年教师节广播稿
2015/08/19 职场文书
详解Python自动化之文件自动化处理
2021/06/21 Python
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python