Axios 后端收不到post参数
原因:
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参数