如图, 我本地调试没问题。然后精彩的来了,前端说无法这样传参数?那apipost这样设计不就是坑人的嘛?那有个疑问啊,为啥apipost可以get请求添加body,而浏览器不可以了?
如图, 我本地调试没问题。然后精彩的来了,前端说无法这样传参数?那apipost这样设计不就是坑人的嘛?那有个疑问啊,为啥apipost可以get请求添加body,而浏览器不可以了?
[破涕为笑]我定义个接口get请求,然后我用body接受参数,apipost里面调试没问题,到了前端页面,死活接受不到参数。我现在理解了后端说的,我本地调试没问题啊。
HTTP 协议没有为 GET 请求的 body 赋予语义,也就是即不要求也不禁止 GET 请求带 body。
大多数 HTTP 实现从技术上都支持 HTTP GET 请求带 body,少数实现会禁止(google-chrome 浏览器、node-fetch),少数实现会不建议(Fiddler)。
基于这个现状,一般来说要避免在 GET 请求中带 body。
8 回答4.6k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
3 回答2.5k 阅读✓ 已解决
HTTP规范中定义了GET请求方法不应该携带请求体(request body)。因此,在浏览器中,无论你是否在请求中添加了请求体,浏览器都会忽略请求体并只发送URL和标头信息。但是,在API测试工具(如Postman)中,你可以手动选择请求方法和是否携带请求体。对于POST请求,它允许携带请求体,因此在API测试工具中你可以添加请求体。如果你想向服务器发送数据,可以考虑将数据作为URL参数或使用POST方法发送请求。