欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vue3中axios封装内容无法发送input框中输入内容的问题

程序员文章站 2024-01-02 22:53:34
...

需求是希望将input框中输入的内容通过axios发送给后端服务器,遇到的问题为发送出的数据为数组中的原始数据,并不会将input的内容发送出去。
先看下代码

<template>
<el-input v-model="form.input"> </el-input>
    <el-button   @click="sendfunc()" circle>send</el-button>
</template>

<script setup>
const form=reactive({
  "input":'test',
  "account":'',
  "password":''
})

const options = {
  method: 'POST',
  headers: { 'content-type': 'application/x-www-form-urlencoded' },
  data: Qs.stringify(form),
  url:'http://localhost/api/vueserver',
};

function sendfunc() {
  console.log(form)
  axios(options)
  })
}
</script>

由一个input给出数据来源,由axios发送数据。其中axios中的内容封装在了options。
在input中输入内容并且发送至后端,对比一下两侧的数据
前端看到的内容:
Vue3中axios封装内容无法发送input框中输入内容的问题
后端接收的数据:
Vue3中axios封装内容无法发送input框中输入内容的问题
可以看到后端并没有接收到input框中的内容,而是收到了原始的form字典中的数据。
排查之后发现在axios函数中不能将内容封装好发送,option只保存了form中最原始的值,而没有跟着form变化。最简单的方法就是放弃option的封装,直接将内容写进axios中。

function sendfunc() {
  console.log(form)
  axios({
    method: 'POST',
    headers: { 'content-type': 'application/x-www-form-urlencoded' },
    data: Qs.stringify(form),
    url:'http://192.168.120.178:80/api/vueserver',
  })
}

再次测试后发现后端接收到input中的内容了
Vue3中axios封装内容无法发送input框中输入内容的问题

上一篇:

下一篇: