徐向博 / Imin.

Axios 后端收不到post参数
作者:Imin 时间:2020-05-10 分类: 前端

原因:

axios默认不处理post参数,默认的content-type = application/json,而一般情况下后端只能接受表单数据或经过URL序列化的数据。也就是form或multipart/form-data。从而导致前端参数发送过去,后端无法收到的情况,引发斯比大战。。。


解决方法:

1、设置 content-type = application/x-www-form-urlencoded

2、使用 URLSearchParams 将参数进行序列化

3、使用FormData


这里推荐使用第三种方式 FormData,例如我在Vue中处理axios的post参数:

import axios from 'axios'
axios.interceptors.request.use(
    (config) => {
        if(config.method == 'post'){
            let data = new FormData();
            for(let k in config.data) data.append(k, config.data[k]);
            config.data = data;
        }
        return config
    }
)
Vue.prototype.axios = axios

最后:FormData不只是可用于axios,无论是插件还是原生ajax,都可以使用FormData发送post参数

本文标签: axios post参数