Ok, I know it's a bad idea and it shouldn't be done but for the sake of this question please assume there's no other way - I am given API endpoint that requires GET request with empty object as a body.
Is there a way to do async request from browser?
I'm using axios
library which uses XMLHttpRequest
under the hood and MDN says that send
wipes the body when HTTP method is GET
.
I tried using native fetch
but it gives me this error in browser:
TypeError: Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.
Is there any way to do it?
No, there isn't.
GET requests can't have a request body, you can't make them have one. GET requests only retrieve data, they never send data.
An API that requires GET request with empty object as a body just doesn't work.
Edit:
Apparently, GET requests are allowed to have a body. Most implementations will ignore it or reject the request. But even if the server that provides your API allows a body, you can't use it:
From the spec about
XMLHttpRequest#send
:From the spec about the
Request
class in the fetch API:That means that the answer to your question is still No.