axios发送post请求 这里为什么只提到了post请求,因为get请求都是把参数放在params属性下,所以没得选,发送过程中参数被拼接到了url上,从控制台看url后面参数是?param1=XX&&post请求的情况比较多。
axios发送post请求参数有两种传法,一种是放在params属性中,适合传参较少且数据简单的情况,如下案例:
// 查询列表
export function queryList(query) {
return request({
url: '/exam/list',
method: 'post',
params: query
})
}
另一种是放在data属性中,如果传参中含有引号、等号、拼接的json串或传参的数据量较大时只能用这种,如下案例:
export function saveMend(query) {
return request({
url: '/mend/save',
method: 'post',
data: query
})
}
调用时传参格式一样的,都是传一个对象类型的值:
queryReminderList(this.queryParams).then(res => {
console.log('列表返回', res)
if (res && res.data) {
this.tableData = https://www.it610.com/article/res.data
this.total = res.count || 1
}
}).catch(err => { console.log(err) })
【前端|axios发送post请求时将请求参数放在params和data配置项的区别,java后端如何获取()】两种传参方式区别及java后端如何获取?
- 将参数放在params属性中传递的是拼接字符串的形式,后面也会拼接到url上(这里跟get请求不一样,直接在浏览器输入拼接后的url并不能把参数传到后台)
- java后端我都是用request对象接收(不太喜欢建实体类),用request.getParameter(“参数名”)获取参数,也可以用JavaBean实体类,不用加注解。如果想单独获取某个属性可以加@RequestParam注解,
如单独获取page和limit参数写法:
bleDataInfo tableQuery(@RequestParam(defaultValue="https://www.it610.com/article/1")int page, @RequestParam(defaultValue="https://www.it610.com/article/10")int limit, HttpServletRequest request){
String sort = request.getParameter("sort");
。。。。。
}
- 用postman测试接口的时候参数要放在Params选项卡。
- 将参数放在data配置项中往后台传的是一个对象类型
- java后端接口获取我一般用JSONObject对象,用jsonObject.getString(“参数名”)获取参数,也可以用JavaBean实体类,参数都要加@RequestBody注解
- 用postman测试接口的时候参数放在请求体(body)中。
- 比如在get类型请求中传参用了data配置项,这种情况不会报错,就是参数获取不到罢了。
- 比如在post类型的请求中比较复杂的参数放在了params配置项,可能会报莫名其妙的错误,我遇到过一个保存表单的请求,参数含有一个子列表数据,请求发送后报CORS跨域问题,看着好像很复杂,其实就是axios请求参数配置项配置错了。。
推荐阅读
- 后端|springBoot项目集成quartz开发定时任务案例及注意事项
- 关于网页中的文本选择以及统计选中文本长度
- spring|微服务负载均衡器Ribbon详解
- Spring|Ribbon负载均衡(源码解析)
- 前端|开发者的4个层级,你在哪一层()
- Spring基础
- spring|阿里巴巴内部纯享的这份SpringBoot+VUE全栈开发实战手册,绝了
- scratch 工作区间变量意思
- Vue|【Vue】V-if成立时,元素出现;不成立时,元素不显示。