使用axios的post请求参数如下:
使用jq的ajax请求参数如下
axios的请求参数,后台无法request前端post的参数。
axios的代码如下:
axios.post('/', {
email: 'a@qq.com',
}).then(function(data) {
});
使用axios的post请求参数如下:
使用jq的ajax请求参数如下
axios的请求参数,后台无法request前端post的参数。
axios的代码如下:
axios.post('/', {
email: 'a@qq.com',
}).then(function(data) {
});
楼上答非所闻。
很明显axios在帮你post JSON字符串,然而你期望的肯定是application/x-www-form-urlencoded
,因为jQuery.ajax默认就是这种格式。具体怎么做需要用qs.stringify,网上教程很多。
http://www.jianshu.com/p/b22d...
Query String Parameters
说明参数是拼到了url
地址上传过去的。
原有的jquery的ajax如果用的是post,说明本身设计就有问题。
你看axios.post有没有参数可以帮你拼上去,或者你手动拼。
Query String Parameters
指的就是通过在URL中携带的方式提交的参数。
跟content-type没有什么关系。
@royal_029 的答案应该是axios
转序列化的正确方式。query params
跟Content-Type是没有关系的,qs的方式可取,但要多安装一个模块,参照下面链接,只需要添加3行代码即可。axios的post最好再封装一下
application/x-www-form-urlencoded使用以下两种方式可以亲测可以
const params = new URLSearchParams();
params.append('name', 'abcdef');
params.append('age', 8899);
axios.post('http://127.0.0.1/study/cross/getData',
params
).then(function (response) {
console.log(response);
}).catch(function (error) {
console.log(error);
});
let postData = qs.stringify({name: 'qsName',"age":22})
axios.post('http://127.0.0.1/study/cross/getData',
postData
).then(function (response) {
console.log(response);
}).catch(function (error) {
console.log(error);
});
以上需要引入
import axios from 'axios';
import qs from 'qs';
3 回答2.1k 阅读✓ 已解决
2 回答1.9k 阅读
1 回答1.1k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
1 回答1.5k 阅读
1 回答1k 阅读
1 回答887 阅读
出现这种情况是因为服务器要求
POST
请求模式下需传Content-Type:application/x-www-form-urlencoded
格式的数据,axios
可以配合qs
库格式化数据。如果服务器接受
JSON
格式的数据,不引用qs
库直接传默认的application/json
也可以。