I’m surprised nobody has mentioned the new Fetch API, supported by all browsers except IE11 at the time of writing. It simplifies the XMLHttpRequest syntax you see in many of the other examples.
The API includes a lot more, but start with the fetch()
method. It takes two arguments:
- A URL or an object representing the request.
- Optional init object containing the method, headers, body etc.
Simple GET:
const userAction = async () => { const response = await fetch('http://example.com/movies.json'); const myJson = await response.json(); //extract JSON from the http response // do something with myJson }
Recreating the previous top answer, a POST:
const userAction = async () => { const response = await fetch('http://example.com/movies.json', { method: 'POST', body: myBody, // string or object headers: { 'Content-Type': 'application/json' } }); const myJson = await response.json(); //extract JSON from the http response // do something with myJson }