zoukankan      html  css  js  c++  java
  • 哄骗JQuery直接调用asp.net后台办法

    哄骗JQuery的¥.ajax()可以很便利的调用asp.net的后台办法。

    [WebMethod]   定名空间

    1、无参数的办法调用, 重视:1.办法必然要静态办法,并且要有[WebMethod]的声明

    后台<C#>:

    using System.Web.Script.Services;   
    

    [WebMethod]
    public static string SayHello()
    {
    return "Hello Ajax!";
    }


    前台<JQuery>:



    ¥(function() {   
    
    ¥("#btnOK").click(function() {
    ¥.ajax({
    //要用post体式格式
    type: "Post",
    //办法地点页面和办法名
    url: "data.aspx/SayHello",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data) {
    //返回的数据用data.d获取内容
    alert(data.d);
    },
    error: function(err) {
    alert(err);
    }
    });

    //禁用按钮的提交
    return false;
    });
    });





    2、带参数的办法调用



    后台<C#>:



    using System.Web.Script.Services;
    

    [WebMethod]
    public static string GetStr(string str, string str2)
    {
    return str + str2;
    }




    前台<JQuery>: 



    ¥(function() {   
    
    ¥("#btnOK").click(function() {
    ¥.ajax({
    type: "Post",
    url: "data.aspx/GetStr",
    //办法传参的写法必然要对,str为形参的名字,str2为第二个形参的名字
    data: "{""str"":""我是"",""str2"":""XXX""}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data) {
    //返回的数据用data.d获取内容
    alert(data.d);
    },
    error: function(err) {
    alert(err);
    }
    });

    //禁用按钮的提交
    return false;
    });
    });



    3、返回数组办法的调用



    后台<C#>:



    using System.Web.Script.Services;
    

    [WebMethod]
    public static List<string> GetArray()
    {
    List<string> li = new List<string>();

    for (int i = 0; i < 10; i++)
    li.Add(i + "");

    return li;
    }


    前台<JQuery>:



    ¥(function() {   
    
    ¥("#btnOK").click(function() {
    ¥.ajax({
    type: "Post",
    url: "data.aspx/GetArray",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data) {
    //插入前先清空ul
    ¥("#list").html("");

    //递归获取数据
    ¥(data.d).each(function() {
    //插入成果到li里面
    ¥("#list").append("<li>" + this + "</li>");
    });

    alert(data.d);
    },
    error: function(err) {
    alert(err);
    }
    });

    //禁用按钮的提交
    return false;
    });
    });
    /// <reference path="jquery-1.4.2-vsdoc.js"/>
    ¥(function() {
    ¥("#btnOK").click(function() {
    ¥.ajax({
    type: "Post",
    url: "data.aspx/GetArray",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data) {
    //插入前先清空ul
    ¥("#list").html("");

    //递归获取数据
    ¥(data.d).each(function() {
    //插入成果到li里面
    ¥("#list").append("<li>" + this + "</li>");
    });

    alert(data.d);
    },
    error: function(err) {
    alert(err);
    }
    });

    //禁用按钮的提交
    return false;
    });
    });


    4、返回Hashtable办法的调用



    后台<C#>:



    using System.Web.Script.Services;
    
    using System.Collections;

    [WebMethod]
    public static Hashtable GetHash(string key,string value)
    {
    Hashtable hs = new Hashtable();

    hs.Add("www", "yahooooooo");
    hs.Add(key, value);

    return hs;
    }


    前台<JQuery>:







    ¥(function() {   
    
    ¥("#btnOK").click(function() {
    ¥.ajax({
    type: "Post",
    url: "data.aspx/GetHash",
    //记得加双引号 T_T
    data: "{ ""key"": ""haha"", ""value"": ""哈哈!"" }",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data) {
    alert("key: haha ==> "+data.d["haha"]+"\n key: www ==> "+data.d["www"]);
    },
    error: function(err) {
    alert(err + "err");
    }
    });

    //禁用按钮的提交
    return false;
    });
    });


    5、操纵xml



    XMLtest.xml:
    

    view plaincopy to clipboardprint?
    <?xml version="1.0" encoding="utf-8" ?>
    <data>
    <item>
    <id>1</id>
    <name>qwe</name>
    </item>
    <item>
    <id>2</id>
    <name>asd</name>
    </item>
    </data>
    <?xml version="1.0" encoding="utf-8" ?>
    <data>
    <item>
    <id>1</id>
    <name>qwe</name>
    </item>
    <item>
    <id>2</id>
    <name>asd</name>
    </item>
    </data>


    前台<JQuery>:



    ¥(function() {   
    
    ¥("#btnOK").click(function() {
    ¥.ajax({
    url: "XMLtest.xml",
    dataType: ""xml"", //返回的类型为XML ,和前面的Json,不一样了
    success: function(xml) {
    //清空list
    ¥("#list").html("");
    //查找xml元素
    ¥(xml).find("data>item").each(function() {
    ¥("#list").append("<li>id:" + ¥(this).find("id").text() +"</li>");
    ¥("#list").append("<li>Name:"+ ¥(this).find("name").text() + "</li>");
    })
    },
    error: function(result, status) { //若是没有上方的捕获失足会履行这里的回调函数
    alert(status);
    }
    });

    //禁用按钮的提交
    return false;
    });
    });
    
    
    http://www.byywee.com/page/M0/S711/711718.html
  • 相关阅读:
    围棋角部大眼的气
    openwrt 增加自定义包
    OpenWrt – 编译前的./scripts/feeds脚本用法
    memset 赋初值为无穷大和无穷小
    android 自动点击学习课程
    最多硬币问题
    最少硬币问题
    9.2 嵌套矩形问题
    ajax请求到一个controller在跳转到下载的controller上也不能下载,百度了一下总结下原因:发现原来jQuery的ajax回调已经把response的数据傻瓜式的以字符串的方式解析.
    MySQL 数据库的远程访问权限
  • 原文地址:https://www.cnblogs.com/Areas/p/2421841.html
Copyright © 2011-2022 走看看