jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码


Posted in Javascript onApril 27, 2011

ws.aspx 代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
<title></title> 
<script src="jquery.js" type="text/javascript"></script> 
<style type="text/css"> 
.hover 
{ 
cursor: pointer; /*小手*/ 
background: #ffc; /*背景*/ 
} 
.button 
{ 
width: 150px; 
float: left; 
text-align: center; 
margin: 10px; 
padding: 10px; 
border: 1px solid #888; 
} 
#dictionary 
{ 
text-align: center; 
font-size: 18px; 
clear: both; 
border-top: 3px solid #888; 
} 
#loading 
{ 
border: 1px #000 solid; 
background-color: #eee; 
padding: 20px; 
margin: 100px 0 0 200px; 
position: absolute; 
display: none; 
} 
#switcher 
{ 
} 
</style> 
<script type="text/javascript"> 
//无参数调用 
$(document).ready(function() { 
$('#btn1').click(function() { 
$.ajax({ 
type: "POST", //访问WebService使用Post方式请求 
contentType: "application/json", //WebService 会返回Json类型 
url: "WebService1.asmx/HelloWorld", //调用WebService的地址和方法名称组合 ---- WsURL/方法名 
data: "{}", //这里是要传递的参数,格式为 data: "{paraName:paraValue}",下面将会看到 
dataType: 'json', 
success: function(result) { //回调函数,result,返回值 
$('#dictionary').append(result.d); 
} 
}); 
}); 
}); 
//有参数调用 
$(document).ready(function() { 
$("#btn2").click(function() { 
$.ajax({ 
type: "POST", 
contentType: "application/json", 
url: "WebService1.asmx/GetWish", 
data: "{value1:'心想事成',value2:'万事如意',value3:'牛牛牛',value4:2009}", 
dataType: 'json', 
success: function(result) { 
$('#dictionary').append(result.d); 
} 
}); 
}); 
}); 
//返回集合(引用自网络,很说明问题) 
$(document).ready(function() { 
$("#btn3").click(function() { 
$.ajax({ 
type: "POST", 
contentType: "application/json", 
url: "WebService1.asmx/GetArray", 
data: "{i:10}", 
dataType: 'json', 
success: function(result) { 
$(result.d).each(function() { 
//alert(this); 
$('#dictionary').append(this.toString() + " "); 
//alert(result.d.join(" | ")); 
}); 
} 
}); 
}); 
}); 
//返回复合类型 
$(document).ready(function() { 
$('#btn4').click(function() { 
$.ajax({ 
type: "POST", 
contentType: "application/json", 
url: "WebService1.asmx/GetClass", 
data: "{}", 
dataType: 'json', 
success: function(result) { 
$(result.d).each(function() { 
//alert(this); 
$('#dictionary').append(this['ID'] + " " + this['Value']); 
//alert(result.d.join(" | ")); 
}); 
} 
}); 
}); 
}); 
============== 
var aArray = [“sdf”,”dasd”,”dsa”]; //数组$.each(aArray,function(iNum,value){ document.write(“序号:”+iNum+” 值:”+value);});var oObj = {one:1,two:2,three:3};$.each(aArray,function(property,value){ document.write(“属性:”+ property +” 值:”+value);}); 
============================================== 
//返回DataSet(XML) 
$(document).ready(function() { 
$('#btn5').click(function() { 
$.ajax({ 
type: "POST", 
url: "WebService1.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> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div id="switcher"> 
<h2> 
jQuery 的WebServices 调用</h2> 
<div class="button" id="btn1"> 
HelloWorld</div> 
<div class="button" id="btn2"> 
传入参数</div> 
<div class="button" id="btn3"> 
返回集合</div> 
<div class="button" id="btn4"> 
返回复合类型</div> 
<div class="button" id="btn5"> 
返回DataSet(XML)</div> 
</div> 
<div id="loading"> 
服务器处理中,请稍后。 
</div> 
<div id="dictionary"> 
</div> 
</form> 
</body> 
</html>

WebService1.asmx.cs
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Services; 
using System.Data; 
namespace jQuery.Learning 
{ 
/// <summary> 
/// WebService1 的摘要说明 
/// </summary> 
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[System.ComponentModel.ToolboxItem(false)] 
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
[System.Web.Script.Services.ScriptService] 
public class WebService1 : System.Web.Services.WebService 
{ 
/// <summary> 
/// 无参数 
/// </summary> 
/// <returns></returns> 
[WebMethod] 
public string HelloWorld() 
{ 
return "Hello World "; 
} 
/// <summary> 
/// 带参数 
/// </summary> 
/// <param name="value1"></param> 
/// <param name="value2"></param> 
/// <param name="value3"></param> 
/// <param name="value4"></param> 
/// <returns></returns> 
[WebMethod] 
public string GetWish(string value1, string value2, string value3, int value4) 
{ 
return string.Format("祝您在{3}年里 {0}、{1}、{2}", value1, value2, value3, value4); 
} 
/// <summary> 
/// 返回集合 
/// </summary> 
/// <param name="i"></param> 
/// <returns></returns> 
[WebMethod] 
public List<int> GetArray(int i) 
{ 
List<int> list = new List<int>(); 
while (i >= 0) 
{ 
list.Add(i--); 
} 
return list; 
} 
/// <summary> 
/// 返回一个复合类型 
/// </summary> 
/// <returns></returns> 
[WebMethod] 
public Class1 GetClass() 
{ 
return new Class1 { ID = "1", Value = "牛年大吉" }; 
} 
/// <summary> 
/// 返回XML 
/// </summary> 
/// <returns></returns> 
[WebMethod] 
public DataSet GetDataSet() 
{ 
DataSet ds = new DataSet(); 
DataTable dt = new DataTable(); 
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; } 
} 
}
Javascript 相关文章推荐
JS的document.all函数使用示例
Dec 30 Javascript
Jquery倒计时源码分享
May 16 Javascript
JavaScript中的ArrayBuffer详细介绍
Dec 08 Javascript
JS+CSS实现的经典tab选项卡效果代码
Sep 16 Javascript
Angular 根据 service 的状态更新 directive
Apr 03 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
Sep 09 Javascript
Javascript vue.js表格分页,ajax异步加载数据
Oct 24 Javascript
angular select 默认值设置方法
Jun 23 Javascript
Layui事件监听的实现(表单和数据表格)
Oct 17 Javascript
vue-cli3 取消eslint校验代码的解决办法
Jan 16 Javascript
JavaScript 实现下雪特效的示例代码
Sep 09 Javascript
微信小程序scroll-view不能左右滑动问题的解决方法
Jul 09 Javascript
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
Apr 27 #Javascript
js,jQuery 排序的实现代码,网页标签排序的实现,标签排序
Apr 27 #Javascript
javascript中的继承实例代码
Apr 27 #Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
Apr 27 #Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
Apr 27 #Javascript
js实时监听文本框状态的方法
Apr 26 #Javascript
Javascript中的window.event.keyCode使用介绍
Apr 26 #Javascript
You might like
php 用sock技术发送邮件的函数
2007/07/21 PHP
2014年10个最佳的PHP图像操作库
2014/07/14 PHP
详解php中的implements 使用
2017/06/13 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
Javascript 面向对象(三)接口代码
2012/05/23 Javascript
深入理解Javascript中的循环优化
2013/11/09 Javascript
jQuery之过滤元素操作小结
2013/11/30 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
js实现滚动条滚动到页面底部继续加载
2015/12/19 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
微信小程序 Buffer缓冲区的详解
2017/07/06 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
Python模块学习 filecmp 文件比较
2012/08/27 Python
python里将list中元素依次向前移动一位
2014/09/12 Python
python实现DES加密解密方法实例详解
2015/06/30 Python
python实现彩色图转换成灰度图
2019/01/15 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
2019/11/11 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
Django中ORM的基本使用教程
2020/12/22 Python
CSS3轻松实现圆角效果
2017/11/09 HTML / CSS
英国比较机场停车场网站:Airport Parking Essentials
2019/12/01 全球购物
父亲生日宴会答谢词
2014/01/10 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
先进工作者个人总结
2015/02/15 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python
戴尔Win11系统no bootable devices found解决教程
2022/09/23 数码科技