一、简介

背景:后端要求我传输一个值给他,但是我传给他之后首先报422状态码,我在这里分享顺便记录一下自己这次的处理过程

二、解决过程及问题出现

当时后端要求我传几个值给他,按照我以前的习惯我习惯用json传值给他,结果后端还是给我返回422

1.首先我就去搜了一下422状态码是什么意思,我感觉说的太官方,我理解的意思就是服务器无法理解你传的值,在通俗点就是传值的格式或者类型有误。我马上就去检查了我传输的值得类型是否和后端需要的类型一样,有没有缺少什么字段又或者字段名错了(字段名错误当时我认为不太可能因为我是复制过去的~~)

2.我就去检查我的请求头token有没有封装上(因为我自己二次封装了一个axios),因为在后端需要传的字段里面是有token这个字段(浏览器和控制台都有)

3. 我就又去看了一下接口文档(因为这次后端给我的接口文档叫fastAPI),所以我去查了一下fastAPI里面后端给我写了两种状态码情况,一直是成功的(200,不用说了),一种是失败的(422,返回的图在下面),错误大概意思就是说我缺失了什么必需的元素,后面我发现后端要求我传formData回去,我传的是json,肯定是会报错的,然后我又传formdata回去,至于formdata如何传值可以去网上自己搜索,一大堆。

4.当我用formdata传值回去的时候,后端还是给我返回422,我当时去检查了一下formdata传值参数和写法有没有问题,我发现formdata传值回去我的请求头没有变化,formdata传值的话,那么请求头应该是Content-Type = 'multipart/form-data;'(如果是json的话请求头应该是这样的Content-Type= 'application/json;charset=utf-8',当然默认的都是json的)我又去我requst里面出现封装了一个专门基于formdata请求头新的axios封装,结果呢不生效,就是说axios二次封装没有把他封装上去还是以前的请求头,然后我就怀疑是二次封装的原因(具体原因我也不太清楚),我就打算用原生的axios ,结果呢我都不用封装请求头,只要你是formdata,axios会自动帮你拼接好请求头

5.请求头和传值都是按照formdata的形式传回去了,但是还是要报422,我就去network里面看看 我传回去的值有没有什么变化(因为现在用formdata传值与我以往传值不同了),在network里面我有一个字段后端是需要叫我将文件名是数组的形式传回去,结果我传回去的值是[object object],我当时认为的就是因为formdata它是以添加对象key和value的形式传回去的值,而我在传文件名的时候是直接将数组扔给后端的,肯定会出现上面那种情况,解决办法就是

6.我已经检查了我前端应该传的所有字段类型和名字加格式都没有错误结果还是报422,我实在没有办法了只能找后端看看他后台有没有什么问题

三、总结

我写这篇文章的目的就是为了记录我这次遇到的问题方便下次长记性同时如果大家遇到了也可以参考一下我这篇文章,我技术很菜,这真的只是我第一遇见422状态码,不足的地方希望大家多多见谅,谢谢。。。。。。。。我最后的解决方法是使用原生axios,不使用任何封装axios,并且请求头都是自己去手写,最后使用formdata传值回去(注意,在写请求头Content-Type的时候 一定不用自己去写Content-Type = 'multipart/form-data;因为浏览器会识别传值的时候如果是form data传值他会自己给你修改Content-Type的值,而请求头你自己需要手写的是自己写token)

后端返回422处理过程相关推荐

  1. vue3后台管理项目,后端返回动态路由

    文章目录 前言 一.项目地址 二.项目思路描述 三.操作步骤 3.1拦截路由 静态路由 后端动态路由 3.2登录表单验证 3.3permission.js文件 3.4取后台路由并处理 3.5 layo ...

  2. webApi前端ajax调用后端返回{“readyState“:0,“status“:0,“statusText“:“error“}解决方案

    webApi前端ajax调用后端返回{"readyState":0,"status":0,"statusText":"error& ...

  3. java后端 返回json_Java后端返回Json数据

    Java后端返回Json数据 Jackson 导包 com.fasterxml.jackson.core jackson-databind 2.12.1 创建ObjectMapper对象,调用writ ...

  4. vue 如何解析原生html,VUE渲染后端返回含有script标签的html字符串示例

    VUE渲染后端返回含有script标签的html字符串示例 发布时间:2020-09-14 23:37:52 来源:脚本之家 阅读:207 作者:冷幽悠 在接入支付宝支付模块的时候,支支返回的是一个f ...

  5. 【Java文件下载】如何让浏览器直接下载后端返回的图片,而不是直接打开

    默认情况下,浏览器设定是inline形式,对于服务器返回的文件,能打开就打开,不能打开就自动下载. Content-Disposition 设置 大多数情况下,后端都是实现一个文件管理的功能,通过文件 ...

  6. vue 后端返回二进制流文件,前端如何实现下载?

    目录 1. axios 请求二进制流文件导出文件 1.1 后台返回的二进制流: 1.2 使用: 1.3 需要注意以下几点: 2. 关于 arraybuffer 和 blob 2.1 ArrayBuff ...

  7. 解决后端返回数据中的大数字问题(使用第三方包json-bigint )

    JavaScript 能够准确表示的整数范围在-2^53到2^53之间(不含两个端点),超过这个范围,无法精确表示这个值,这使得 JavaScript 不适合进行科学和金融方面的精确计算. Math. ...

  8. 后端返回页面ajax的处理

    业务逻辑:前端ajax发送用户名密码的post请求,请求格式为json.后端收到数据并作校验(如查数据库)后,如果失败返回json格式的响应体,如果成功则返回一个页面. 结果:ajax请求只可用来传数 ...

  9. uniapp中后端返回的数字字符串如何在页面快速计算

    今天在对接接口的时候,后端返回的数据有单价有数量,但是在页面相乘是出现了NaN, 数据类型对不上. 两个字符串类型的数字在页面中如何快速计算 两个方法 parseInt() parseFloat() ...

最新文章

  1. PyQt5 简易计算器
  2. 比尔盖茨宣布离开微软董事会:昔日全球首富致力于改变世界
  3. 计算机中数据的编码方式
  4. 射频系统基础知识总结
  5. android简单长按,H5实现安卓长按/抬起事件
  6. 中报表导出带表头_来看看Java是 如何优雅的导出 Excel的
  7. linux 自动连接无限,hotplug应用实例:自动连接无线网
  8. 【youcans 的 OpenCV 例程200篇】127. 形态算法之细化
  9. wpf 修改label值_c# – 在WPF中绑定Setter属性的值
  10. 为 ASP.NET 创建缓存配置对象[转载]
  11. perl学习之:肯定匹配和否定匹配
  12. IT 史上那些不为人知的第一次
  13. matlab gui 简介,Matlab中Powergui的介绍.pdf
  14. 新iPhoneSE定价较低,置国产旗舰手机于尴尬境地!
  15. SQL查询语句可以执行,但是提示对象名无效
  16. 游戏设计自学记录(入门完结)
  17. h3c无线管理 dns服务器,H3C FIT AP与AC连接时三种的注册流程
  18. 在线学习及作业平台管理系统(ssm,mysql)
  19. PS中矢量形状图层的合并交叉等运算
  20. 利久贝分享:如何摆脱“穷人思维”?

热门文章

  1. 德语语法笔记——连词
  2. 【阅读源码系列】ConcurrentHashMap源码分析(JDK1.7和1.8)
  3. 【Nav2中文网】四、首次机器人安装指南(六)设置导航插件
  4. iOS9 iOS10 iOS11的新特性
  5. 自定义View实现五子棋游戏
  6. 东华OJ 基础 49修理牛棚
  7. 【学习】管理者的沟通技巧
  8. 罗尔定理的推论+一元微积分
  9. 关于计算机设备自检自查报告,小学计算机室自检自查报告.docx
  10. 买电视好还是投影仪好,最新2000余字专业讲解分享给大家