可以用@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能发送成功呢?
提前谢谢大佬
回答
有大佬能讲讲吗
脱离源码的逼逼都是瞎扯淡,
首先看springmvc对于参数绑定,使用的是HandlerMethodArgumentResolver,接口两个方法
1:supportsParameter(支持解析的类型)
2:resolveArgument(参数解析逻辑)
json请求实现类则是RequestResponseBodyMethodProcessor,
,很明显和get post无关;
以上是 可以用@RequestBody接收GET请求吗? 的全部内容, 来源链接: utcz.com/a/99030.html