vueではajaxリクエストをカプセル化し、ブロックリクエストはリクエストヘッダにtokenを追加する

1977 ワード

/**
         *       
         * @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(xhr){
                        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;
                        }
                    }
                });
            });

        }