iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >怎么解决在Vue中使用axios用form表单出现的问题
  • 128
分享到

怎么解决在Vue中使用axios用form表单出现的问题

2024-04-02 19:04:59 128人浏览 泡泡鱼
摘要

这篇文章将为大家详细讲解有关怎么解决在Vue中使用axiOS用fORM表单出现的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue中使用Axios第三方库,采用形式

这篇文章将为大家详细讲解有关怎么解决在Vue中使用axiOS用fORM表单出现的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

vue中使用Axios第三方库,采用形式提交,参数格式为multipart /格式数据 ,请求参数变为对象格式的解决办法。(推荐第二种方法)

提交数据的四种编码方式

一,应用/ X WWW的窗体-urlencoded

这应该是最常见的后编码方式,一般的表单提交默认以此方式提交。大部分服务器语言对这种方式都有很好的支持。在PHP中,可以用$ _ POST [“钥匙”]的方式获取到关键的值,在节点中我们可以使用查询字符串中间件对参数进行分离

app.post("/server",function(req,res){
 req.on("data",function(data){
  let key=querystring.parse(decodeURIComponent(data)).key;
  console.log("querystring:"+key)
 });
});

2.multipart /格式数据

这也是一种比较常见的后数据格式,我们用表单上传文件时,必须使形式表单的加密类型属性或者ajax的内容类型参数等于多部分/格式的数据。使用这种编码时格式到发送后台的数据长得像这样子 不同字段以开始,接着是内容描述信息,最后是字段具体内容。如果传输的是文件,还要包含文件名和文件类型信息

怎么解决在Vue中使用axios用form表单出现的问题

--boundary

3.application / json

axios默认提交就是使用这种格式。如果使用这种编码方式,那么传递到后台的将是序列化后的JSON字符串。我们可以将application / json与application / x-www-form -urlencoded的发送数据进行比较

首先应用的英文/ JSON: 接着是应用程序/ x-WWW窗体-urlencoded: 这里可以明显看出应用程序/ x-WWW窗体-urlencoded上传到后台的数据是以键值形式进行组织的,而应用程序/ JSON则直接是个JSON字符串。如果在处理的应用程序/ JSON时后台还是采用对付应用程序/ x-WWW窗体-urlencoded的方式将会产生问题。例如后台的node.js依然采用之前对付应用程序/ x-WWW窗体-urlencoded的方法,那么之后得到的数据的英文这样子的 这个时候再只能电子杂志到未定义

怎么解决在Vue中使用axios用form表单出现的问题

querystring.parse(decodeURIComponent(data))

怎么解决在Vue中使用axios用form表单出现的问题

querystring.parse(decodeURIComponent(data)).key

4.text / XML

剩下的一种编码格式是文本/ XML,这种格式我没有怎么使用过

解决方法

既然我们知道axios post方法默认使用application / json格式编码数据,那么解决方案就有两种,一是后台改变接收参数的方法,另一种则是将axios post方法的编码格式修改为application / x- WWW窗体-urlencoded,这样就不需要后台做什么修改了。

先来看第一种解决方法

VUE组件中,爱可信发送后请求的代码如下

this.$axios({
 method:"post",
 url:"/api/haveUser",
 data:{
  name:this.name,
  passWord:this.password
 }
}).then((res)=>{
 console.log(res.data);
})

控制台此时标题网络里面的信息的英文这样子的 后台接收数据需要依赖中间件,我们事先装好,接着在后台代码中引用体解析器 这张截图中,作用英文发挥的代码仅仅的英文接下来在路由中使用身体解析器

怎么解决在Vue中使用axios用form表单出现的问题

body-parser

怎么解决在Vue中使用axios用form表单出现的问题

const bodyParser=require("body-parser");

app.post("/api/haveUser",bodyParser.json(),function(req,res){
 console.log(req.body);
 let haveUser=require("../api/server/user.js");
 haveUser(req.body.name,req.body.password,res);
});

这时,当前台发送后请求之后,后台控制台就会中出打印这时,通过或者就能拿到对应的值。 这种方法比较简单,也不需要前台做过多修改,推荐使用这种方法。req.body

怎么解决在Vue中使用axios用form表单出现的问题

req.body.namereq.body.password

第二种解决方法,具体操作如下

前端

this.$axios({
 method:"post",
 url:"/api/haveUser",
 headers:{
  'Content-type': 'application/x-www-form-urlencoded'
 },
 data:{
  name:this.name,
  password:this.password
 },
 transformRequest: [function (data) {
  let ret = ''
  for (let it in data) {
   ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
  }
  return ret
  }],
}).then((res)=>{
 console.log(res.data);
})

其中发挥关键作用的是标头与transformRequest。其中 headers 的英文设置即将被发送的自定义请求头。 transformRequest 允许在向服务器发送前,修改请求数据。这样操作之后,后台querystring.parse(decodeURIComponent(data))电子杂志到的就是类似于{ name: 'w', password: 'w' }的对象。

后台代码如下

app.post("/api/haveUser",function(req,res){
  let haveUser=require("../api/server/user.js");
  req.on("data",function(data){
   let name=querystring.parse(decodeURIComponent(data)).name;
   let password=querystring.parse(decodeURIComponent(data)).password;
   console.log(name,password)
   haveUser(name,password,res);
  });
});

关于“怎么解决在Vue中使用axios用form表单出现的问题”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 怎么解决在Vue中使用axios用form表单出现的问题

本文链接: https://www.lsjlt.com/news/72135.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么解决在Vue中使用axios用form表单出现的问题
    这篇文章将为大家详细讲解有关怎么解决在Vue中使用axios用form表单出现的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue中使用Axios第三方库,采用形式...
    99+
    2022-10-19
  • react的ui库antd中form表单使用SelectTree反显问题及解决
    目录react ui库antd中form表单使用SelectTree反显问题最近遇到这个问题,后来找到原因react antd form表单回显踩坑需求如下总结react ui库an...
    99+
    2023-01-16
    react ui库antd antd form表单 使用SelectTree反显
  • react的ui库antd中form表单使用SelectTree反显问题如何解决
    这篇文章主要介绍了react的ui库antd中form表单使用SelectTree反显问题如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react的ui库antd中form表单使用SelectTree反...
    99+
    2023-07-05
  • 使用jBuilder8出现问题怎么解决
    如果您在使用jBuilder8时遇到问题,可以尝试以下解决方案: 确保您的操作系统和Java版本与jBuilder8的要求兼容。...
    99+
    2023-10-28
    jBuilder8
  • Vue项目中使用addRoutes出现问题的解决方法
    目录前言 一、404页面 1. 出现的原因 2. 解决方案 二、刷新白屏 1. 出现原因 2. 解决方案 三、路由重复 1.  出现原因 2. 解决方案 总结前言 add...
    99+
    2022-11-12
  • vue中ref的使用问题怎么解决
    本文小编为大家详细介绍“vue中ref的使用问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue中ref的使用问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue的ref(this.$r...
    99+
    2023-06-29
  • vue3使用socket.io的出现的问题怎么解决
    今天小编给大家分享一下vue3使用socket.io的出现的问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。问题一...
    99+
    2023-07-05
  • 解决vue中使用swiper 插件出错的问题
    由于我自己在写一个demo时候用到了该插件,出现了一些问题,所以就简单查了一下该插件的用法以及一些常见的错误 1.出现Get .../maps/swiper.min.js.map 5...
    99+
    2022-11-12
  • 怎么解决使用ip上网出现的问题
    这篇文章主要讲解了“怎么解决使用ip上网出现的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决使用ip上网出现的问题”吧!访问某个网站时,如果网站页面无法打开,无法登录密码,抓取信...
    99+
    2023-06-20
  • 在vue项目中使用axios发送post请求出现400错误的解决
    目录使用axios发送post请求出现400错误出现400状态码主要有两种原因总结了错误的几个原因vue axios400 Bad Request问题使用axios发送post请求出...
    99+
    2022-11-13
  • 在不使用ssr的情况下怎么解决Vue单页面SEO问题
    小编给大家分享一下在不使用ssr的情况下怎么解决Vue单页面SEO问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!只是用php...
    99+
    2022-10-19
  • 如何解决使用vue-aplayer插件时出现的问题
    这篇文章主要介绍如何解决使用vue-aplayer插件时出现的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:安装$ npm install ...
    99+
    2022-10-19
  • 使用绿色版SQLServer2008R2出现问题怎么解决
    这篇文章主要讲解了“使用绿色版SQLServer2008R2出现问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“使用绿色版SQLServer2008R2出现问题怎么解决”吧!1、绿...
    99+
    2023-07-05
  • 使用pd.merge表连接出现多余行的问题解决
    本文的目标是将表1论文及出版物与表2出版物及其指标进行匹配。 利用pandas的merge函数实现表的左外连接。左外连接即左表的外连接,左表保持不变,匹配右表的行(合并后右表肯能...
    99+
    2022-11-11
  • 在Vue中使用dhtmlxGantt组件时遇到的问题怎么解决
    本文小编为大家详细介绍“在Vue中使用dhtmlxGantt组件时遇到的问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“在Vue中使用dhtmlxGantt组件时遇到的问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
    99+
    2023-07-05
  • 法国服务器使用出现问题怎么解决
    法国服务器使用出现问题解决的方法:1、如果是应用服务无法正常运行,可以通过远程重启这项服务即可恢复正常;2、如果是服务器硬件故障,需要购买硬件或送到机房进行更换;3、如果是服务器访问量过大导致服务器无法访问,看网站本身营销成功带来的结果或网...
    99+
    2022-10-14
  • vue项目中使用axios遇到的相对路径和绝对路径问题怎么解决
    这篇文章主要讲解了“vue项目中使用axios遇到的相对路径和绝对路径问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue项目中使用axios遇到的相对路径和绝对路径问题怎么解决...
    99+
    2023-06-30
  • 如何解决vue组件中使用v-for出现告警问题
    这篇文章给大家分享的是有关如何解决vue组件中使用v-for出现告警问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在项目中运行v-for代码段时,<flexbox&nb...
    99+
    2022-10-19
  • Vue中使用axios调用后端接口的坑怎么解决
    这篇文章主要讲解了“Vue中使用axios调用后端接口的坑怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue中使用axios调用后端接口的坑怎么解决”吧!axios调用后端接口的坑...
    99+
    2023-06-29
  • mybatis使用Integer类型查询出现的问题怎么解决
    本文小编为大家详细介绍“mybatis使用Integer类型查询出现的问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis使用Integer类型查询出现的问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入...
    99+
    2023-06-29
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作