为什么Postman允许GET请求中包含Body?

问题描述 投票:0回答:1

我正在使用

axios
与后端服务器进行交互,在这个过程中,我发现了一些有趣的东西。在 Postman 中,可以在请求中附加数据
Body
并接收状态为
200
的响应。然而,在前端实现时似乎并非如此。例如:

axios.get('[target_url]', {
    // would result in "ERROR_CODE_INTERNAL_SERVER_ERROR" (status `500`)
    'data': {
        'data1': 'value1',
        'data2': 'value2'
        // ...etc.
    }
}).then(response => console.log(response)); 

许多 StackOverflow 问题提到为什么

GET
请求不允许请求
Body
。让我将其中一些作为参考:

  1. 带有请求正文的HTTP GET
  2. REST API HTTP GET 与正文
  3. axios 获取带有正文和标头的请求
  4. React JS - 如何在 fetch 的 GET 中传递正文请求

建议的方法是将其更改为

POST
请求,或者将请求
Body
中的数据转换为
params
在正文中发送 GET 请求参数


因此,我真的想更进一步,了解 Postman 允许

body
请求的原因。
感谢您的关注和所有帮助。

javascript http axios get postman
1个回答
0
投票
RFC 2616

4.3 消息正文

消息正文不得包含在 请求方法的规范(第 5.1.1 节) 不允许在请求中发送实体主体

第 5.1.1 节或第 9.3 节都没有禁止为 GET 方法发送实体主体,因此理论上这不是问题。

但是许多网关会忽略 GET 方法的请求正文,因此不建议使用。

© www.soinside.com 2019 - 2024. All rights reserved.