axios发送post请求,默认的content-type

当参数为对象时,参数在request payload里,content-type为application/json;charset=UTF-8,这样springmvc是不能通过

request.getParameterMap();获取的解决办法一,参数通过
URLSearchParams设置
let param = new URLSearchParams();
param.append("username", "admin");
param.append("password", "admin");

方法二,修改axios源码-axios--lib---defaults.js
defaults.js文件里transformRequest方法中

if (utils.isObject(data)) {

//setContentTypeIfUnset(headers, ‘application/json;charset=utf-8‘);

//return JSON.stringify(data);

setContentTypeIfUnset(headers, ‘application/x-www-form-urlencoded;charset=utf-8‘);

let keys2 = Object.keys(data);

/* 这里就是把json变成url形式,并进行encode */

//console.log(‘key====‘, keys2)

return encodeURI(keys2.map(name => `${name}=${data[name]}`).join(‘&‘));

}

这样就可以了



原文地址:https://www.cnblogs.com/huadiwxg/p/8184341.html

时间: 2024-11-09 16:28:42

axios发送post请求,默认的content-type的相关文章

vue中采用axios发送post请求

这几天在使用vue中axios发送get请求的时候很顺手,但是在发送post请求的时候老是在成功的回调函数里边返回参数不存在,当时就纳闷了,经过查阅资料,终于得到了解决方案,在此做一总结: 首先我们在运用npm install axios的时候就会默认安装qs,因此我们就得将qs引入到axios中,然后需要再通过实例化一个新的axios,并且设置他的消息头为'content-type': 'application/x-www-form-urlencoded' 1 let qs = require

vuejs之使用axios发送http请求

看一个例子: <html> <head> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> </head> <body> <input type="button" value="get请求" class="get"> <input type="bu

使用axios发送post请求,将JSON数据改为为form类型

通常前端通过POST请求向服务器端提交数据格式有4中,分别是"application/x-www-form-urlencoded"格式." multipart/form-data"格式."application/json"格式和"text/xml"格式.通常最常见的是"application/json"格式,也就是通过JSON字符串形式. 在控制台看到的数据就是这样: 有的时候后台需要Form形式的数据才能

vue中axios发送post请求,后端(@RequestParam)接不到参数

遇到的问题描述 :axios post 请求,后端接收不到参数. 我们的接口是java,用@RequestParam来接收前端的参数 解决方案:使用qs:axios中已经包含有qs,所以无需重新安装,直接引入就好 import Qs from 'qs'//引入qs let chedata = { data: encStr, sign: md5.hexMD5(che), timestamp: timestamp, } //chedata是我需要传递给后端的参数 console.log(Qs.str

在vue中使用axios发送post请求,参数方式

由于后台接收的参数格式为FormData格式, 在axios中参数格式默认为, 在传参数前,将原先官方提供的格式 改为如下: axios({ url: '../../../room/listRoomPage', method: 'post', data: {offset: 0, limit: 9999, roomCode: "", roomtypeId: 0, floorId: 0}, transformRequest: [function (data) { var oMyForm =

axios发送post请求,如何提交表单数据?

var app = new Vue({ el: "#register", data: { registerUrl: "/KindlePocket/bindingData" newUserInfo: { userName:'n', phone:'13', email:'12', emailPwd:'22', kindleEmail:'asd' } }, methods: { register: function() { axios.post(this.register

Vue axios发送Http请求

axios 1.cnpm install axios --save 2.在vue文件中引入,import Axios from 'axios' 3.使用,Axios.get(url).then((res)=>{}).catch((err)=>{}) <template> <div id="app"> <div v-html="htmlValue"></div> </div> </templ

axios发送post请求,提交表单数据

解决办法一 你要是看下用法就解决了... https://www.npmjs.com/package- 或者 https://github.com/mzabriskie- 1 axios({ 2 url: '/user', 3 method: 'post', 4 data: { 5 firstName: 'Fred', 6 lastName: 'Flintstone' 7 }, 8 transformRequest: [function(data) { 9 10 let ret = '' 11

使用axios发送请求,遇到会发两次的情况

在学习php&mySQL的过程中,前端nuxt用(vue官方推荐的)axios发送post请求,以实现向数据库插入页面提交数据的功能. 发现功能是实现了,但数据库中表的数据是这样的 很莫名其妙的多出空行,由于是初学者,费了好长时间找是不是自己php连接数据库的代码出了什么问题,但并没有发现疏漏. 于是找回前端,确定axios请求只触发了一次后,看了下浏览器控制台network,发现每次点击提交都会出现2次请求,对比一下发现第一次请求是这样的 下边的login.php才是正常的post请求.那么本