get请求为什么有的请求参数放到链接后面有的放到请求参数中?
今天调用了一个接口,接口要求传一个日期过去,当时没仔细看(因为文档也没写请求参数和相应参数),以为是传一个data,里面有条件查询的参数之类的,结果第一次报错。
export function todayUserNum(data){ return request({
url:'/system/home/todayNum',
method:'get',
data:data
})
}
Required request parameter 'date' for method parameter type String is not present(方法参数类型字符串所需的请求参数“日期”不存在)
后面第二次调用的时候注意到了文档上的参数说明,于是就改成了这个样子
export function todayUserNum(date){ return request({
url:'/system/home/todayNum',
method:'get',
params:date
})
}
同样接口给我抛出了上述的错误,并且我的请求参数值被分割了,我意识到可能是框架的某块公用请求将参数值分割了。我又更换了一次写法
export function todayUserNum(date){ return request({
url:'/system/home/todayNum?date='+date,
method:'get'
})
}
这次接口成功获取到了数据,但是我又试了试另一种写法
export function todayUserNum(date){ return request({
url:'/system/home/todayNum'+date,
method:'get'
})
}
这时候接口抛出了404异常
Error: Request failed with status code 404
我又又尝试了一下其他写法,这一次,我将请求参数放在了请求体里面
export function todayUserNum(date){ return request({
url:'/system/home/todayNum'+date,
method:'get',
params:{
date:date
}
})
}
接口请求成功
但是有的接口的get请求方式就用上述的某种方法可以走通,比如:
1. export function getCheck(id) { return request({
url: '/system/check/' + id,
method: 'get'
})
}
2. export function listCheck(query) {
return request({
url: '/system/check/list',
method: 'get',
params: query
})
}
我不太懂这种写在链接后的和写在请求体上的区别在哪里,而且也不太懂为什么有的参数可以直接将值放上去,有的要规定请求参数名和值,希望大佬可以解答一下
回答:
就算你没接触后端接口设计也没关系。
前端的路由你应该知道,路由里面有两个关键的概念,
1.params:/router1/:id , //router1/123,/router1/789 ,这里的id叫做params2.query:/router1?id=123 , //router1?id=456 ,这里的id叫做query。
query添加需要按照浏览器规则来拼接 ?id=123&id2=567&id3=789
axios中的params接受一个对象 他最终也会以query的形式给你拼接到 url 后面
以上是 get请求为什么有的请求参数放到链接后面有的放到请求参数中? 的全部内容, 来源链接: utcz.com/p/935133.html