jquery封装异步全局请求

这是一个封装过的请求服务可单独用作为一个js引入,返回为Promise形式,使用.then调用

// 声明一个全局Http请求
window.httpService = {
    //通过访问来源,设置不同的服务器
    getUrl: function() {
        var myUrl = window.location.href;
        var masUrlConfig = {
            "127.0.0.1": "http://192.168.1.197:8081/",
        };
        var masUrl = "";
        for (var i in masUrlConfig) {
            if (myUrl.indexOf(i) >= 0) {
                masUrl = masUrlConfig[i];
            }
        }
        return masUrl;
    },
    /**
     * [httpServer 请求服务]
     * @param  {[type]} url    [url请求链接]
     * @param  {[type]} params [参数]
     * @param  {[type]} types  [请求方式,默认为post]
     * @return {[type]}        [返回的结果]
     */
    httpServer: function(url, params, types) {
        var deffer = $.Deferred();
        $.ajax({
            url: this.getUrl() + url, // 请求接口
            data: params,
            type: types || 'post',
            cache: true,
            success: function(data) {
                deffer.resolve(data);
            },
            error: function(data) {
                deffer.reject(data);
                console.log(data);
                alert("數據異常");
            }
        });
        return deffer.promise();
    }
};

使用方式

httpService.httpServer(url,params).then(function(data){
    console.log(data);
})

你可能感兴趣的:(jquery封装异步全局请求)