可以用@RequestBody接收GET请求吗?
SpringBoot
后端,axios
前端发请求,但是不论把参数放在params还是data里,请求返回的都是400 Bad Request
.
上网查了一些资料,看到说@GetMapping
和@RequestBody
是互斥的,但是我用postman
却能成功传请求拿到返回值.
后端代码
@GetMapping(value = "/view/tagtree")
public SingleNodeConsanguinity viewTagTree(@RequestBody TagLocateInfoBean tagLocateInfoBean, HttpServletRequest request) {
SingleNodeConsanguinity singleNodeConsanguinity = viewTagService.getConsanguinity(tagLocateInfoBean);
return singleNodeConsanguinity;
}
前端代码
let param = new URLSearchParams();
param.append("type", "QFX");
param.append("sheetName", "获取数据");
param.append("tag", "");
param.append("bqId", "");
console.log(param);
axios.get("http://localhost:8080/qfx/demand/view/tagtree",
param
)
.then((res) => {
console.log(res);
})
.catch(err => {
console.log('出错了');
console.log(err);
});
postman
浏览器
问问题想知道
@RequestBody
能用来接收get
请求的参数吗?- 如果能,那应该怎么操作才能成功把请求发到后端,拿到数据呢?
- 如果不能, 那为什么postman能发送成功呢?
提前谢谢大佬
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
涨知识了,Get请求居然支持Body。
说下关于问题我的理解吧。
1.支持,个人建议非必要不要这样用。
2.你请求失败应该是 axios不支持get传递body(我是后端这个回答来自于https://www.zhihu.com/questio...)
脱离源码的逼逼都是瞎扯淡,
首先看springmvc对于参数绑定,使用的是HandlerMethodArgumentResolver,接口两个方法
1:supportsParameter(支持解析的类型)
2:resolveArgument(参数解析逻辑)
json请求实现类则是RequestResponseBodyMethodProcessor,
,很明显和get post无关;
有大佬能讲讲吗