[HTTP] GET请求的body能否携带数据?
  vEdPAeDdfGGE 2024年08月07日 43 0

在与后端对接口的时候,有个GET分页接口,需要传pageSize,currentPage等参数,这种不敏感的数据其实直接拼接在url上面就好了,但是后端可能出于开发习惯就把接口的这些参数放在了body上,并在postman或者apifox上测试没毛病,就让前端开始对接。前端在对接的过程中发现添加到body中的数据发送失败。

所以GET请求的body数据是如何被处理的?

RFC规范并没有说明GET请求不能携带body。

而前端(浏览器环境)的网络请求,不管用了什么第三方网络请求库,最后使用的API无外乎XHR和fetch API。

  • 对于XHR,在WHATWG标准中,说明了如果请求方法为GET或者HEAD,那么body会被设置为null。

https://xhr.spec.whatwg.org/#the-send()-method 第3条

  • 而对于fetch API,在WHATWG标准中,如果设置了body并且请求方法是GET或HEAD,那么会直接抛出异常。

https://fetch.spec.whatwg.org/#request-class 第35条

由于postman和apifox的实现是不遵循WHATWG标准的,所以在这些工具中测试GET请求可以把数据放到body里。
但是对于前端开发(浏览器环境)来说,GET请求是不能把数据放到body里的。

根据实际需求,可以考虑把参数拼接到url上,或者如果坚持将数据携带在body中,可以考虑使用POST方法。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年08月07日 0

暂无评论

推荐阅读
  AqVf24WfTw9n   6天前   46   0   0 JavaScript
  5kfjjuqwphwR   11天前   40   0   0 JavaScript
  nOXnSDLlp3zQ   13天前   42   0   0 JavaScript
vEdPAeDdfGGE