[HTTP] GET请求的body能否携带数据?
在与后端对接口的时候,有个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方法。
[HTTP] GET请求的body能否携带数据?的更多相关文章
- Get请求携带数据量的各种限制及解决办法、Post请求说明
1. Get请求携带数据量的各种限制及解决办法 Http Get方法提交的数据大小长度并没有限制,HTTP协议规范没有对URL长度进行限制.这个限制是特定的浏览器及服务器对它的限制. 到新公司处理 ...
- 启动一个新的activity并携带数据,返回数据给上一个activity
一.在启动一个新的activity的时候可以通过Intent携带数据,通过Intent.putExtra()方法通过键值对的形势装入数据.在新启动的activity中通过 getI ...
- BMap添加海量点数据,BMap.Point携带数据
在开发web项目的过程中使用到了百度地图,由于要在地图中画出很多点比较影响加载速度,查看官方文档,发现有提供加载海量点的功能BMap.PointCollection,用这个加快速度,但是官方文档中提供 ...
- SpringMVC 05: SpringMVC中携带数据的页面跳转
SpringMVC默认的参数对象 SpringMVC默认的参数对象是指,不用再另行创建,相当于SpringMVC内置对象,可以直接声明并使用 默认的参数对象有:HttpServletRequest,H ...
- PHP如何获取Post请求中的Json字符串数据?
摘自:http://dianjingjiaoyu.blog.163.com/blog/static/18347920820114194642257/ 最近用到ext与PHP交互,ext把json数据p ...
- OpenLayers添加点【php请求MySQL数据库返回GeoJSON数据】
php请求MySQL数据库返回GeoJSON数据的实现方法请参见: http://www.cnblogs.com/marost/p/6234514.html OpenLayers[v3.19.1-di ...
- ajax请求、servlet返回json数据
ajax请求.servlet返回json数据 1.方式一 response.setcontenttype("text/html;charset=utf-8"); response. ...
- TCP连接建立的三次握手过程可以携带数据吗?
前几天实验室的群里扔出了这样一个问题:TCP连接建立的三次握手过程可以携带数据吗?突然发现自己还真不清楚这个问题,平日里用tcpdump或者Wireshark抓包时,从来没留意过第三次握手的ACK包有 ...
- 如何回滚请求<复制系统初始的数据>所处理的数据
一. 问题提出 请求名称:复制系统初始的数据 参数:空 问题: 今天早上财务实施人员新配置了一个OU,然后在跑复制系统初始的数据报表的时候,不小心,不输入参数就直接跑. 报表先是报错. 接下来的 ...
- 异步请求Ajax(取得json数据)
异步请求Ajax 没有学习Ajax之前请求数据的时候都是整个页面全部刷新了一次,也就是每次请求都会重新请求所有的资源.但是在很多时候不需要页面全部刷新,仅仅是需要页面的局部数据刷新即可,此时需要发送异 ...
随机推荐
- K8s集群中部署SpringCloud在线购物平台(一)
一.安装k8s高可用集群 主机名 IP 配置 网络 master控制节点 192.168.10.10 centos 7.9 4核4G 桥接 node1工作节点 192.168.10.11 centos ...
- Python 潮流周刊#48:Python 3.14 的发布计划
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- Go:基于 MongoDB 构建 REST API — Fiber 版
本文主要在于带着大家完成一个基本的 CRUD 工作,让大家熟悉 Fiber + MongoDB 构建 RESTful API,熟悉工作流程.同时了解相关库的使用. 本文的完整代码见:https://g ...
- SpringBoot模拟插入1000000万条数据
一.数据库表准备 CREATE TABLE `student` ( `id` bigint NOT NULL COMMENT '用户id', `name` varchar(50) COLLATE ut ...
- nim 2. 变量与函数
对于系统的学习,官网上的相应的资料, 这里通过一个简单的例程,演示一下. 这个例程里有一个根据半径计算圆面积的方法,以及调用的示例: 演示代码 1 #计算圆的面积 2 proc calcArea(r: ...
- Cesium的HeadingPitchRange 用法
这个有别于headingpitchroll, headingpitchroll是用在orientation属性上的(比如相机的setView,flyTo,以及entities.add中) Headin ...
- 逆向WeChat (二)
本篇在博客园的地址https://www.cnblogs.com/bbqzsl/p/18187099 回顾一下现时网上的资源. 原生 https://github.com/duilib, Ultima ...
- 在身份认证后建立用户对象ICurrentUser
app.UseAuthentication(); 这个中间件添加后,他会为HttpContext.User设置一个ClaimsPrincipal对象.里面有身份认证token里面携带的信息. 其访问方 ...
- Linux安装Logstash
Logstash安装 一.上传解压重命名 将Logstash压缩包上传到/home/下解压压缩包并重命名 [root@localhost home] tar -zxf logstash-7.15.0- ...
- vue我自己的动态菜单思路
1.在router里把所有的路由都加上. 2.后端存储路由path和其他设计需要的信息. 3.登录后,后端返回菜单树,根据权限不同,返回的菜单不同,并且还要返回每个path代表的页面具有的权限数组.可 ...