统一封装一个Ajax方法

我们每次请求都写一个ajax的post方法,这样子肯定不合理。

/**
 * ajax封装
 * url 发送请求的地址
 * data 发送到服务器的数据,数组存储,如:{"date": new Date().getTime(), "state": 1}
 * dataType 预期服务器返回的数据类型,常用的如:xml、html、json、text
 * successfn 成功回调函数
 * errorfn 失败回调函数
 */

jQuery.axse = function (url, data, successfn, errorfn) {
    $.ajax({
        type: "post",
        data: JSON.stringify(data),
        url: url,
        dataType: "json",
        contentType: "application/json",
        headers: {
            Accept: "application/json; charset=utf-8",
            Token: "ddddd"
        },
        success: function (d) {
            successfn(d);
        },
        error: function (d) {
            errorfn(d);
        }
    });
};Code language: JavaScript (javascript)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
	<meta charset="utf-8" />
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
    <script src="ajaxhook.js?t=2"></script>
</head>
<body>
    <script type="text/javascript">
        $.axse(
                'http://localhost:61714/api/values',
                {id:1},
                function(s){
                    alert(s);
                },
                function(s){
                    console.log(s);//返回的错误信息
                });
    </script>
</body>
</html>Code language: HTML, XML (xml)
public string Post([FromBody]dynamic obj)
{
    return "dddd";
}Code language: PHP (php)

下面是本集的源码

jQuery.apipost = function (url, data, successfn, errorfn) {
    $.ajax({
        type: "post",
        data: JSON.stringify(data),
        url: 'http://localhost:23557' + url,
        dataType: "json",
        contentType: "application/json",
        headers: {
            Accept: "application/json; charset=utf-8",
            Token: "ddddd"
        },
        success: function (d) {
            successfn(d);
        },
        error: function (d) {
            errorfn(d);
        }
    });
};Code language: JavaScript (javascript)

下面的html里面调用封装的ajax方法

$(function () {
    //初始化左侧树
    $.apipost(
        '/api/menu',
        { id: 1 },
        function (data) {
            if (data) {
                $('#tt').tree({
                    animate: true,
                    data: data
                });
            }
        },
        function (s) {
            console.log(s);//返回的错误信息
        });

    //初始化登录信息
});Code language: JavaScript (javascript)

后台接口

[TokenAuth]
public class MenuController : ApiController
{
    public Menu[] Post(dynamic obj)
    {
        var menus = new Menu[2];
        menus[0] = new Menu() { id = 1, text = "一级菜单" + obj.id };
        menus[1] = new Menu() { id = 2, text = "二级菜单" };
        return menus;
    }
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注