直奔主题
经常会有同学说格式写的非常正确,变量名也无偏差,可后台就是获取不到数据。文档中的post请求是这样的,传参是以对象的形式
axios.post('url', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
在Axios的post请求中如果传递的参数是对象类型的,Axios会自动将对象转化为json格式的字符串使用 application/json 的请求头向后端服务接口传递参数。而一般情况下,后端获取参数,请求头的需要是 application/www-x-form-urlencoded 。
Axios的post请求接收参数的两种方式:
1)使用字符串进行参数传递 如:“firstName=Fred&lastName=Flintstone”
var firstName = "Fred";
var lastName = "Flintstone";
axios.post('url', "firstName=" + firstName + "&lastName=" + lastName )
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
2)post请求仍以对象类型传递数据,后端接口直接使用**@RequestBody**注解形式接收参数 。此时前台传递的数据必须是json格式,且请求头必须是 application/json(其实是自动的,如有意外也可手动),后端会把其转换成一个对象,这就要求对象中的属性名和json中的属性名一致。这个就需要和后端的同志沟通的。
如果还有其他观点,欢迎留言!