axios发post请求,后端接收不到参数的问题
axios会帮我们自动转换请求数据和响应数据 以及 自动转换JSON数据,我们的请求头转换成
Content-Type变成了application/json;charset=utf-8,然后因为我们的参数是JSON对象,
axios帮我们做了一个stringfy的处理,axios在发送post请求时,默认直接把json放在请求体中提交到后端的。
但是后台可能使用的时java spring mvc,并且使用的注解是@requestParam,这个只能从请求的地址中取出参数,也就是只能从请求链接中截取出参数。要求的Content-Type是'application/x-www-form-urlencoded',所以后端就接收不到参数;
解决办法:
使用URLSearchParams传递参数
let params=new URLSearchParams();
params.append('username','admin'); params.append('psd','222222');
axios({
method:'post',url:'/api/test/aa',data:params
});
URLSearchParams不支持所有的浏览器
把参数修改为query参数
直接修改axios的header content-type,axios.defaults.headers.post['Content-type']='application/x-www-form-urlencoded',还需要引入qs库,这个库是axios里面包含的,不需要再下载了
import qs from 'qs'
let data={username:'admin',psd:'222222'};
axios({method:'post',url:'',data:qs.stringify(data)});
也可以使用axios的transformQequest来修改请求的数据:
axios({
method:'post',url:'',
transformRequest:[function(data){return qs.stringifg(data)}],
data:{username:'admin',psd:'222222'}
});
axios.post('apo/test/22/erer',"username='zhangsan'&psd='222222'");
axios发post请求,后端接收不到参数的问题的更多相关文章
- Vue简单封装axios—解决post请求后端接收不到参数问题
1.在src/下新建api文件夹,api/下新建index.js和public.js 在public.js中: import axios from 'axios'; import qs from 'q ...
- vue --- axios发post请求后台接收不到参数的三种解决方案
最近用vue 做项目使用axios 发送post 请求时遇到了前端传数据后端接收不到的情况: 后来仔细对比发现axios传值是这样的: 而 ajax 传值是这样的: 一个 Request Paylo ...
- axio post 请求后端接收不到参数的解决办法
原因是没有对参数进行序列化 默认情况下,axios将JavaScript对象序列化为JSON. 要以应用程序/ x-www-form-urlencoded格式发送数据. 在拦截器前修改 方法一,用原生 ...
- 微信小程序:使用wx.request()请求后台接收不到参数
问题描述: 微信小程序:wx.request()请求后台接收不到参数,我通过wx.request()使用POST方式调用请求,参数传递不到后台 解决方案: Content-Type': 'applic ...
- axios 发 post 请求,后端接收不到参数的解决方案
问题场景 场景很简单,就是一个正常 axios post 请求: axios({ headers: { 'deviceCode': 'A95ZEF1-47B5-AC90BF3' }, method: ...
- axios 发 post 请求,后端接收不到参数的解决方案(转载)
原文地址:https://www.cnblogs.com/yiyi17/p/9409249.html 问题场景 场景很简单,就是一个正常 axios post 请求: axios({ headers: ...
- ajax get和post请求 后端接收并返回数据
get请求$(function(){ //alert("23"); var x = "#page"; var y = "${ctx!}/static/ ...
- 前端axios发送的数据后端接收不到(没有自动依赖注入)可能的原因
前端请求头content-type没有进行正确设置,后端无法解析该类型数据,比如说: 后端若想接收json类型的数据,则需要配置相应的转换器,(spring中可使用@RequestBody注解),若没 ...
- axios post请求后台接收不到参数 和 一些配置问题
原因: axios 的 headers的 content-type 默认是 “application/json ”,传给后台的格式是这样的: 但是后台接收数据的格式一般是表单格式的,就是formda ...
随机推荐
- Kubernetes 学习8 Pod控制器
一.回顾 1.Pod是标准的kubernetes资源,因此其遵循为其资源清单配置定义的基本格式,包含:apiVersion,kind,metadata,spec,status(只读) 2.spec的内 ...
- Ubuntu 系统安装教程
- 我们使用 Kafka 生产者在发消息的时候我们关注什么(Python 客户端 1.01 broker)
之前使用 Kafka 的客户端消费者比较多一点,而且也是无脑订阅使用也没有深入了解过具体的参数.总的来说使用不够细节. 这次公司项目活动期间暴露非常多的问题,于是有了这篇文章. 首先我们来拆解一下 K ...
- segfault at 0 ip sp error 14
error 14从未见过.谁能帮我解答什么情况才会出现这个,而且怎么定位崩溃函数地址? 备忘: segfault at 引起故障的地址ip 指令的内存地址sp 堆栈指针地址, 及栈顶指针err is ...
- 使用flexmark将MarkDown转为HTML
引入对应的依赖 <!-- https://mvnrepository.com/artifact/com.vladsch.flexmark/flexmark --> <dependen ...
- Docker理论简答
Docker理论简答: 1. 介绍对docker的认识(10分) Docker是容器,容器不是docker Dockers就是一个文件夹,它欺骗操作系统说自己是一个操作系统,然后把所需要 ...
- 数据结构Java版之广度优先图(十三)
广度优先,则是用的队列,将每一层的节点先存入队列中去,后依次取出队列中的节点,显示与当前节点存在边,但是未被访问过的节点,也就是下一层与之相联系的节点,再将这些节点存入队列.经过层层迭代,就可以完全遍 ...
- RabbitMQ入门学习系列(四) 发布订阅模式
发布订阅模式 什么时发布订阅模式 把消息发送给多个订阅者.也就是有多个消费端都完整的接收生产者的消息 换句话说 把消息广播给多个消费者 消息模型的核心 RabbitMQ不发送消息给队列,生产者也不知道 ...
- JVM 类加载器的双亲委托机制
1.类加载器的层次结构 在双亲委托机制中,各个加载器按照父子关系形成了树形结构(逻辑意义),除了根加载器之外,其余的类加载器都有且只有一个父加载器. public class MyTest13 { p ...
- cv2.imread()
cv2.imread() 使用opencv和caffe的伙伴们,可能会有一个疑问,那就是对于同时读取图片的cv2.imread()和caffe.io.loadimage两个函数,有什么差别? 1.cv ...