fetch封装不能正常发送post请求

自己封装的fetch代码如下:

import axios from 'axios'
import Cookies from 'js-cookie'
import qs from 'qs'

export function fetch(config) {

//返回promise对象
return new Promise((resolve, reject) => {
    let options = {}
    // 需要全路径才能工作
    if (process.server) {
        // options.baseURL = `http://${process.env.HOST || 'localhost'}:${process.env.PORT || 3000}`
        options.baseURL = `http://${process.env.HOST || 'localhost'}`
    }

    //创建axios实例,把基本的配置放进去
    const instance = axios.create(options);
    // POST 传参序列化
    instance.interceptors.request.use(
        config => {
            let token = Cookies.get('token');
            if (token) {
              config.headers.Authorization = 'Bearer ' + token
            }
            if (config.method === 'post') {
                config.data = qs.stringify(config.data);
            }
            return config
        },
        error => {
            return Promise.reject(error)
        }
    );
    // 返回状态判断
    instance.interceptors.response.use(
        res => {
            return res.data
        },
        error => {
            return Promise.reject(error)
        }
    );
    //请求成功后执行的函数
    instance(config).then(res => {
        resolve(res);
    })
    //失败后执行的函数
    .catch(err => {
        reject(err);
    })
});

}

// 封装调用的接口 getData
export function getData(url, type, params) {

if (!type || type === 'get') {
    return fetch({
        url: url,
        method: type,
        params: params,
    })
} else {
    return fetch({
        url: url,
        method: type,
        body: JSON.stringify(params)
    })
}

}

现在问题是post请求一直发不出去,跟了下代码都能正常走,其实我的参数已经传了,在控制台也看不到传的参数,烦请大神帮忙看下是不是上面封装的部分有问题,谢谢~

clipboard.png

阅读 2.4k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题