客户端关键代码


封装数据结构

新建一个 result.js 文件

/**
 * 后台的数据结构
 * @param {Object} status 状态码
 * @param {Object} msg 消息
 * @param {Object} data 数据
 */
function BaseResult(status, msg, data) {
    var result = new Object();

    result.status = status;
    result.msg = msg;
    result.data = data;

    return result;
}

/**
 * 频道
 * @param {Object} data
 */
function Channel(data) {
    var channel = new Object();

    // ID
    channel.id = data.id;

    // 频道名称
    channel.name = data.name;

    return channel;
}

封装 Ajax 请求

新建一个 utils.js 文件

var Utils = function() {

    // 主机地址
    var HOST_URL = "http://192.168.155.1:8500/";

    /**
     * Ajax 请求 - GET
     * @param {Object} url 请求地址
     * @param {Object} params 请求参数
     * @param {Function} callback 请求成功之后的回调函数
     */
    var handlerGetRequest = function(url, params, callback) {
        handlerAjaxRequest("get", url, params, callback);
    }

    /**
     * Ajax 请求 - POST
     * @param {Object} url 请求地址
     * @param {Object} params 请求参数
     * @param {Function} callback 请求成功之后的回调函数
     */
    var handlerPostRequest = function(url, params, callback) {
        handlerAjaxRequest("post", url, params, callback);
    }

    /**
     * Ajax 请求
     * @param {Object} type 请求类型
     * @param {Object} url 请求地址
     * @param {Object} params 请求参数
     * @param {Object} callback 成功后的回调函数
     */
    var handlerAjaxRequest = function(type, url, params, callback){
        mui.ajax(HOST_URL + url, {
            data: params,
            dataType: 'json', //服务器返回json格式数据
            type: type, //HTTP请求类型
            timeout: 10000, //超时时间设置为10秒;
            headers: {
                'Content-Type': 'application/json'
            },
            success: function(data) {
                var status = data.status;
                var msg = data.msg;

                // 请求成功
                if (status == 200) {
                    callback(data);
                }

                // 请求失败
                else {
                    mui.toast(msg);
                }
            },
            error: function(xhr, type, errorThrown) {
                // 异常处理
                mui.toast("检测到您的网络有问题,请稍后再试...");
            }
        });
    }

    return {
        getRequest: function(url, params, callback) {
            handlerGetRequest(url, params, callback);
        },

        postRequest: function(url, params, callback) {
            handlerPostRequest(url, params, callback);
        }
    }

}();

调用 Ajax 请求的例子

Utils.getRequest("api/v1/channel/data", null, function(data) {
    var result = BaseResult(data.status, data.msg, data.data);
    var channelArray = new Array();
    mui.each(result.data, function(index, item) {
        var channel = Channel(item);
        channelArray.push(channel);
    });

    console.log(channelArray.length);
});

results matching ""

    No results matching ""