vue中封装ajax请求,并且拦截请求在请求头中添加tocken

/**
         * 封装请求方法
         * @param {Object} url  接口请求地址
         * @param {Object} data 接口请求参数(无需请求方式参数,则此项可以为空,否则必须传)
         * @param {Object} params 请求方式参数(可以为空)
         */
        function ajax(url, data, params) {
            return new Promise(function(resolve, reject) {
                $.ajax({
                    url: url,
                    type: params && params.type || 'post',
                    dataType: params && params.dataType || 'JSON',
                    data: data,
                    beforeSend: function(){
                        let token = store.state.token;//在vuex设置token后,通过beforeSend拦截请求并添加请求头中的token
                        if(token != ""){
                            xhr.setRequestHeader("token",token)
                        }
                    },
                    content-type: "application/json; charset-UTF-8",
                    success: function(res) {
                        resolve(res)
                    },
                    error: function(res) {
                        const data = res.responseJSON;
                        switch (res.status) {
                            //非GRT POST请求无法进入success回调,在此拦截status=200的情况
                            case 200:
                                resolve(res);
                                console.log(res);
                                return;
                            case 400:
                                alert('error.ststem.busy')
                                break;
                            case 404:
                                alert('error.ststem.busy')
                                break;
                            case 500:
                                alert('error.ststem.busy')
                                break;
                        }
                    }
                });
            });

        }

猜你喜欢

转载自blog.csdn.net/weixin_42731116/article/details/89330129
今日推荐