前段时间,有几个页面,后端要求接口参数需要用form表单包起来传过去,下面这个方法,只需要在请求拦截器中设置一下,便可轻轻松松实现
上代码:

import axios from 'axios'

export const service = axios.create({
    baseURL: 'http://8.130.8.182:5000/',
    timeout: 5000
})

//添加请求拦截器
service.interceptors.request.use(
    config => {
        //设置axios为form-data 方法2
        if (config.method === 'post') {
            let data = ''
            for (let item in config.data) {
                if (config.data[item])
                    data += encodeURIComponent(item) + '=' + encodeURIComponent(config.data[item]) + '&'
            }
            config.data = data.slice(0, data.length - 1)
        }
        return config;
    },
    error => {
        console.log("在request拦截器显示错误:", error.response)
        return Promise.reject(error);
    }
);

亲测有效,有啥问题,也可留言交流

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐