0


在Vue中使用axios发送post请求时,可能会出现后端无法接收到参数的情况。

在Vue中使用axios发送post请求时,可能会出现后端无法接收到参数的情况。这个问题的原因是axios默认发送的请求是json格式的,而后端接收的请求是form表单格式的,这就导致后端无法获取json格式的请求参数。解决这个问题可以通过设置axios的请求头部信息,将请求格式设置为form表单格式。

下面是Vue简单封装axios并解决post请求后端接收不到参数问题的示例代码:

  1. 首先安装axios和qs库:
npm install axios qs --save
  1. 在src目录下新建一个api文件夹,并新建一个http.js文件:
import axios from'axios'import qs from'qs'

axios.defaults.baseURL ='http://localhost:3000'// 设置请求的基础url//添加一个请求拦截器
axios.interceptors.request.use(function(config){//设置post请求的请求头部信息if(config.method=='post'){
    config.headers['Content-Type']='application/x-www-form-urlencoded;charset=UTF-8'
    config.data = qs.stringify(config.data);}return config;},function(error){return Promise.reject(error);});exportdefault axios //导出axios
  1. 在api文件夹下新建一个users.js文件,作为示例:
import axios from'./http'exportfunctionlogin(params){return axios.post('/login', params)}exportfunctiongetUserList(){return axios.get('/users')}exportfunctionaddUser(params){return axios.post('/users', params)}exportfunctiondeleteUser(userId){return axios.delete('/users/'+ userId)}exportfunctionupdateUser(userId, params){return axios.put('/users/'+ userId, params)}

这样,在Vue中需要引入api文件夹下的users.js文件,然后调用对应的函数即可发送请求。对于post请求,需要将参数以对象的形式传入即可。

// 发送post请求示例this.$api.login({username:'admin',password:'123456'}).then(response=>{
  console.log(response)}).catch(error=>{
  console.log(error)})// 发送get请求示例this.$api.getUserList().then(response=>{
  console.log(response)}).catch(error=>{
  console.log(error)})

这样设置后就可以正常发送post请求了,后端也可以正确接收到参数了。


本文转载自: https://blog.csdn.net/weixin_46286150/article/details/129989696
版权归原作者 你好,生活! 所有, 如有侵权,请联系我们删除。

“在Vue中使用axios发送post请求时,可能会出现后端无法接收到参数的情况。”的评论:

还没有评论