惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Hacker News - Newest:
Hacker News - Newest: "LLM"
NISL@THU
NISL@THU
Know Your Adversary
Know Your Adversary
The Hacker News
The Hacker News
D
Docker
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
罗磊的独立博客
A
Arctic Wolf
P
Privacy International News Feed
Google DeepMind News
Google DeepMind News
Spread Privacy
Spread Privacy
B
Blog
A
About on SuperTechFans
L
LINUX DO - 最新话题
博客园 - 司徒正美
T
The Blog of Author Tim Ferriss
P
Proofpoint News Feed
W
WeLiveSecurity
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Google DeepMind News
Google DeepMind News
aimingoo的专栏
aimingoo的专栏
T
The Exploit Database - CXSecurity.com
美团技术团队
J
Java Code Geeks
Cloudbric
Cloudbric
雷峰网
雷峰网
Vercel News
Vercel News
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
G
Google Developers Blog
T
Tenable Blog
PCI Perspectives
PCI Perspectives
Engineering at Meta
Engineering at Meta
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
H
Hackread – Cybersecurity News, Data Breaches, AI and More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
C
Cybersecurity and Infrastructure Security Agency CISA
S
Secure Thoughts
N
News and Events Feed by Topic
GbyAI
GbyAI
S
SegmentFault 最新的问题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

博客园 - 大鱼

使用XML文件来动态配置ASP.NET MVC的Route规则 发送HTML表单数据:URL编码的表单数据 MVC核心功能组件和简介 emulator-5554 disconnected! Cancelling '*** activity launch'! 安卓模拟器启动报错 类似ipone的滑动开锁功能--拖动后能自动回滚到起始位置--BackgroundWorker 批处理文件BAT安装WINDOWS服务带参数和设置目录 正则表达式30分钟入门教程(第二版) 【转载】 gridview 在列表中对信息进行增删改,通过VIEWSTATE进行缓存,然后一次性将数据提交到服务器端。 Excel VBA 应用 --批量修改选中区域单元格的时间数据,自动为时间值加1月 CELL值=CELL值 + DateAdd(“m”,1,date) - 大鱼 基于Windows下的Web性能测试和压力测试-zhuan team foundation server 安装 图片上传控件 SQL Server 2005异地备份 - 转-已验证 SQL Server 2005 镜像功能实现 - 转 -已验证 如何在VS 2005 SP1中使用VS的web服务器运行一个相对于根目录“/”的网站 xmlhttp-JS-实现用户是否注册无刷新验证 VS项目模板(项模板)制作--针对ASP.NET站点页面使用 安装用于 Team Foundation Server(单服务器部署)的 Microsoft Windows SharePoint Services ---TFS安装问题集 Aspect inside castle 实现 AOP
AJAX 调用 WEBSERVICE的例子,包括对XML数据的处理,包含源码下载
大鱼 · 2011-10-22 · via 博客园 - 大鱼

源码下载

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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">

//处理返回XML格式的数据
 $(document).ready(function () {
        $('#btn6').click(function () { //为DIV绑定激发事件
            $.ajax({
                type: "POST",   //访问WebService使用Post方式请求
                url: "wsPOI.asmx/GetPOIList", //调用WebService的地址和方法名称组合 ---- WsURL/方法名
                data: "{}",         //这里是要传递的参数,格式为 data: "{paraName:paraValue}",下面将会看到      
                dataType: 'xml',
                success: function (result) {     //回调函数,result,返回值

                    xmlDOC = new ActiveXObject("Microsoft.XMLDOM"); //创建XML文档对象
                    //关闭异步加载,这样确保在文档完全加载之前解析器不会继续脚本的执行
                    xmlDOC.async = false;
                    //告知解析器加载名为 "test.xml" 的 XML 文档
                    xmlDOC.loadXML(result.text);

                    var root = xmlDOC.documentElement; //获取XML文档根节点POIS
                    var lxrs = root.childNodes; //获取根节点(POIS)下面所有子节点(POI)的集合
                   
                    for (var i = 0; i < lxrs.length; i++) { //循环读取POI节点
                        var lxr = lxrs[i].childNodes;
                        $('#dictionary').append("新POI<br/>");

                        for (var j = 0; j < lxr.length; j++) {//循环读取POI下面的节点数据
                            $('#dictionary').append(lxr[j].nodeName + " : " + lxr[j].text+"<br/>"); //输出节点内容
                        }
                    }
                }
            });
        });
    });

    //无参数调用
    $(document).ready(function () {
        $('#btn1').click(function () {
            $.ajax({
                type: "POST",   //访问WebService使用Post方式请求
                contentType: "application/json", //WebService 会返回Json类型
                url: "wsPOI.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: "wsPOI.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: "wsPOI.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: "wsPOI.asmx/GetClass",
                data: "{}",
                dataType: 'json',
                success: function (result) {
                    $(result.d).each(function () {
                        //alert(this);
                        $('#dictionary').append(this['ID'] + " " + this['Value']);
                        //alert(result.d.join(" | "));
                    });

                }
            });
        });
    });

    //返回DataSet(XML)
    $(document).ready(function () {
        $('#btn5').click(function () {
            $.ajax({
                type: "POST",
                url: "wsPOI.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>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
               
    </div>


     <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  class="button" id="btn6">
            以字符串的形式返回XML数据(POI功能测试)</div>
    </div>
    <div id="loading">
        服务器处理中,请稍后。
    </div>
    <div id="dictionary"></div>
    </form>
</body>
</html>