gpt4 book ai didi

javascript - 来自浏览器的带有正文的异步 GET 请求

转载 作者:行者123 更新时间:2023-11-30 11:33:05 26 4
gpt4 key购买 nike

好吧,我知道这是个坏主意,不应该这样做,但为了这个问题,请假设没有其他方法 - 我得到的 API 端点需要以空对象作为主体的 GET 请求。

有没有办法从浏览器进行异步请求?我正在使用 axios 库,它在后台使用 XMLHttpRequestMDN表示当 HTTP 方法为 GET 时,send 会删除正文。我尝试使用 native fetch 但它在浏览器中给我这个错误:TypeError:无法在“Window”上执行“fetch”:使用 GET/HEAD 方法的请求不能有正文。

有什么办法吗?

最佳答案

不,没有。

GET requests不能有请求体,你不能让他们有一个。 GET 请求仅检索数据,它们从不发送数据。

需要以空对象作为正文的 GET 请求的 API 是行不通的。

编辑:

显然,GET 请求允许有主体。大多数实现会忽略它或拒绝请求。但是即使提供你的 API 的服务器允许一个 body,你也不能使用它:

来自关于 XMLHttpRequest#send 的规范:

Initiates the request. The optional argument provides the request entity body. The argument is ignored if request method is GET or HEAD. Throws an "InvalidStateError" exception if the state is not OPENED or if the send() flag is set.

来自关于 Request class 的规范在获取 API 中:

If either init’s body member is present and is non-null or inputBody is non-null, and request’s method is GET or HEAD, then throw a TypeError.

这意味着您的问题的答案仍然是

关于javascript - 来自浏览器的带有正文的异步 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45550863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com