可以用@RequestBody接收GET请求吗?

发布于 2022-09-12 22:06:01 字数 1597 浏览 15 评论 0

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

图片.png
图片.png

浏览器

图片.png

问问题想知道

  • @RequestBody能用来接收get请求的参数吗?
  • 如果能,那应该怎么操作才能成功把请求发到后端,拿到数据呢?
  • 如果不能, 那为什么postman能发送成功呢?

提前谢谢大佬

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

从此见与不见 2022-09-19 22:06:01

涨知识了,Get请求居然支持Body。
说下关于问题我的理解吧。
1.支持,个人建议非必要不要这样用。
2.你请求失败应该是 axios不支持get传递body(我是后端这个回答来自于https://www.zhihu.com/questio...

泡沫很甜 2022-09-19 22:06:01

脱离源码的逼逼都是瞎扯淡,
首先看springmvc对于参数绑定,使用的是HandlerMethodArgumentResolver,接口两个方法
1:supportsParameter(支持解析的类型)
2:resolveArgument(参数解析逻辑)
json请求实现类则是RequestResponseBodyMethodProcessor,
image.png,很明显和get post无关;

近箐 2022-09-19 22:06:01

有大佬能讲讲吗

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文