赞
踩
前端开发中,我们常用的是axios这个网络请求库来发送我们的网络请求, 在axios中,params和data是有区别的,他们分别应对的是不同的使用场景。
axios会将所有的请求数据附加到请求的url地址中,有请求数据长度的限制。一般用于GET请求。
应用场景: 且请求参数不多,数据流很小的情况下,一般情况和GET配合使用。同时由于请求参数都暴露在了url里面,所以有安全风险,仅适用于非敏感数据的发送。
如: 我们在params参数中发送一个ids数组类型的请求参数,则最后会生成类似这样的URL请求地址: /api/monitor/loginLog?ids[]=1&ids[]=2&ids[]=3 这里的请求key变成了ids[] ,
- // 删除登录日志
- export function delLoginLog(id) {
- return request({
- url: '/monitor/loginLog',
- method: 'delete',
- params: {ids: toArr(id)}
- })
- }
一般而言,params只和get方法配合使用,你要用其他的请求方式也是可以的,不过在后端获取数据的时候要做相应的调整。 上面的这个示例中最佳的方式应该是是使用data来传递请求参数。
通过data方式传递的请求数据,最后会将所有的请求数据放到请求body里面发送。没有请求数据长度的限制,可发送大文件,字符串或者数据流等,相对于params方式,安全性更高。
适用场景: 适用于所有非GET的请求方式,没有发送数据长度的形式,相对于params方式,请求数据的安全性更好。
对于数组类型的请求数据,最佳的就是使用data方式发送。
- // 删除登录日志
- export function delLoginLog(id) {
- return request({
- url: '/monitor/loginLog',
- method: 'delete',
- data: {ids: toArr(id)}
- })
- }
最后的请求效果如下:
请求载荷
从上图中,我们可以看到,我们发送的数组类型的请求数据,在请求载荷里面它就是一个数组的形式,他最终是被封装成一个JSON格式发送的。这样我们在后端获取数据的时候,如果是在go语言里面我们就可以非常轻松的使用json.Unmarshal将这个请求数据直接绑定到我们自定义的结构体中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。