问题

  1. not supported
{
"msg": "Content type 'multipart/form-data;boundary=--------------------------714795402464721152224475;charset=UTF-8' not supported",
"code": 500
}

这个是因为 form-data 请求没有被后端支持,联系后端确认请求格式;关键就是 msg 中第一个分号前的内容,例子是 form-data

解决方法

  1. 在请求时按照接口文档或者后端给的 postman.json 配置请求头 header
  return request({
url: 'API',
headers: { //这里配置请求头
isToken: true,
'Content-Type': 'application/x-www-form-urlencoded'
},
method: 'post',
data: data,
timeout: -1
})

例子中,请求添加了headers字段,request对象为封装的axios请求,isToken字段表示将会携带token给后端;第二个'Content-Type'为设置的请求类型,当前设置的为x-www-form-urlencoded,也可以设置为其他的,比如form-data。如何确定该字段内容,详见文末 依据Postman写请求头

FormData 与 x-www-form-urlencoded 请求的数据封装

  1. FormData

    在使用FormData格式发送请求时,需要将数据用FormData的对象封装起来,然后传给后台
function getList(params){
const data = new FormData()
data.append("pageSize", data.pageSize)
data.append("pageNum", data.pageNum)
return request({
url: 'api',
headers: {
isToken: true,
'Content-Type': 'multipart/form-data'
},
method: 'post',
data: data,
timeout: -1
})
}

在上面的例子中,FormData为form-data请求的数据格式,data.append(key, value)方法的第一个参数是后端指定的参数名,第二个是值

2. x-www-form-urlencoded

export function getDetail(params) {
const data = new URLSearchParams()// 这个就是 x-www-form-urlencoded 要封装的数据格式
data.append('trackIds', params) // 第一个参数是后端指定的参数名,第二个是值
return request({
url: 'api',
headers: {
isToken: true,
'Content-Type': 'application/x-www-form-urlencoded'
},
method: 'post',
data: data,
timeout: -1 //表示请求永不超时
})
}

x-www-form-urlencoded请求需要将数据封装为URLSearchParams对象,利用append(key,value)方法按照 第一个参数是后端指定的参数名,第二个是值的方法 为URLSearchParams对象填充属性

Postman确定请求类型

如果后端给了postman.json,那么按照postman界面显示来确定请求类型

  1. formData

  2. x-www-form-urlencoded

依据Postman写请求头

  1. 用postman正常发起一次请求,获取到数据后,在下图的位置有个代码样式的按钮,点开

  2. 复制其内容中的header,粘贴到 request 的 headers 中

axios 发送 form-data 请求和 x-www-form-urlencoded请求以及相关问题的更多相关文章

  1. JavaScript原生封装ajax请求和Jquery中的ajax请求

    前言:ajax的神奇之处在于JavaScript 可在不重载页面的情况与 Web 服务器交换数据,即在不需要刷新页面的情况下,就可以产生局部刷新的效果.Ajax 在浏览器与 Web 服务器之间使用异步 ...

  2. 解决Fiddler无法捕获本地HttpWebRequest(C#.net)请求和HttpURLConnection(Java)请求

    方法很简单,就是设置本地代理 C# HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Proxy = new WebPr ...

  3. VUE axios 发送 Form Data 格式数据请求

    axios 默认是 Payload 格式数据请求,但有时候后端接收参数要求必须是 Form Data 格式的,所以我们就得进行转换.Payload 和 Form Data 的主要设置是根据请求头的 C ...

  4. HTTP 请求中的 Form Data 与 Request Payload 的区别

    HTTP 请求中的 Form Data 与 Request Payload 的区别 前端开发中经常会用到 AJAX 发送异步请求,对于 POST 类型的请求会附带请求数据.而常用的两种传参方式为:Fo ...

  5. springMVC接收参数的区别form data与query string parameters与request payload

    在AJAX请求中,我见过有三种form表单数据类型提交. 第一种:form data, 第二种:query string parameters,第三种:request payload. 在google ...

  6. 第三百四十六节,Python分布式爬虫打造搜索引擎Scrapy精讲—Requests请求和Response响应介绍

    第三百四十六节,Python分布式爬虫打造搜索引擎Scrapy精讲—Requests请求和Response响应介绍 Requests请求 Requests请求就是我们在爬虫文件写的Requests() ...

  7. Sending forms through JavaScript[form提交 form data]

    https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_forms_through_JavaScript As in the ...

  8. [Python]【Form Data vs Request Payload】之 python 爬虫如何实现 POST request payload 形式的请求

    1 问题描述 欲使用Python的requests库(requests.session().request(...))实现对此Ajax的POST请求进行模拟实现. 但在chrome发现其请求的形式不一 ...

  9. springMVC中对HTTP请求form data和request payload两种数据发送块的后台接收方式

    最近在做项目中发现,前台提交数据时,如果通过form表单提交和ajax发送json时,springMVC后台接收不能都通过@ModelAttribute方式处理,经过一番查找后,ajax发送json请 ...

  10. axios 请求中的Form Data 与 Request Payload的区别

    在vue项目中使用axios发post请求时候,后台返回500. 发现是form Data 和 Request payload的问题. 后台对两者的处理方式不同,导致我们接收不到数据. 解决方案:使用 ...

随机推荐

  1. python+playwright安装+使用vsocde运行代码

    python虚拟环境 1.安装python,环境配置 2.修改pip镜像源 3.新增虚拟环境 注意路径,例子的路径是在python的目录下生成一个venv文件夹 进入venv文件夹,使用virtual ...

  2. GitLab的备份与恢复

    一.备份 1. docker执行备份 docker exec gitlab gitlab-rake gitlab:backup:create 默认将备份文件保存至docker的/var/opt/git ...

  3. node + vue 实现服务端单向推送消息,利用EventSource

    场景:后台系统需要实时收到电池报警消息,并语音提醒,前台不需要发送任何东西,所以想的是,服务端单向推送 1. 实现EventSource参考博客: https://www.jqhtml.com/412 ...

  4. ast-hook-for-js-RE安装

    # ast-hook-for-js-RE安装 1.项目地址 点我去 2.clone到本地 git clone https://github.com/CC11001100/ast-hook-for-js ...

  5. .NET 服务发现

    .NET 服务发现 https://learn.microsoft.com/en-us/dotnet/core/extensions/service-discovery?tabs=dotnet-cli ...

  6. Docker目录汇总

    Docker目录汇总 Docker资料分享 Docker 教程 | 菜鸟教程 Docker入门级简易手册 Docker - 从入门到实践 Kubernetes中文手册 Kubernetes 指南 我的 ...

  7. X64\X86\X86-64的区别

    x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为&qu ...

  8. docker 1.13版本修改默认存储路径及添加私有registry

    1.服务器安装dockeryum install docker -y12.修改配置文件方法1: 编辑 `/etc/sysconfig/docker`文件 修改`OPTION`选项 添加 --insec ...

  9. [转]OpenLayers基于Vue项目的搭建

    主要内容上次介绍了什么是OpenLayers以及其他的可以GIS工具,这次说说如何基于Vue搭建OpenLayers的项目,并且实现地图的加载. 一.vue项目搭建1.全局安装vue-cil npm ...

  10. AI应用平台搭建之旅(上) - 框架篇(附:AICon大会阿里国际Agent应用平台分享)

    前言 LangEngine内源项目发起于阿里巴巴集团内部组织,LangEngine是类似LLM应用开发框架LangChain的纯Java版本.该框架现已正式对外开源:https://github.co ...