The document provides information on making asynchronous HTTP requests in JavaScript using the Fetch API and XMLHttpRequest. It discusses GET and POST requests, JSON response bodies, promises, and the benefits of asynchronous requests. Key points include:
1) The Fetch API allows making asynchronous HTTP requests from JavaScript by calling the fetch() function and handling responses with .then() and .catch() methods on the returned promise.
2) XMLHttpRequest can also be used to make asynchronous GET and POST requests, setting properties like request type, URL, and handling the response in callbacks.
3) Promises are central to asynchronous behavior, and the async/await syntax can be used with Fetch to simplify promise-based code into a synchronous-
The document provides information on making asynchronous HTTP requests in JavaScript using the Fetch API and XMLHttpRequest. It discusses GET and POST requests, JSON response bodies, promises, and the benefits of asynchronous requests. Key points include:
1) The Fetch API allows making asynchronous HTTP requests from JavaScript by calling the fetch() function and handling responses with .then() and .catch() methods on the returned promise.
2) XMLHttpRequest can also be used to make asynchronous GET and POST requests, setting properties like request type, URL, and handling the response in callbacks.
3) Promises are central to asynchronous behavior, and the async/await syntax can be used with Fetch to simplify promise-based code into a synchronous-
HTTP GET request HTTP GET requests are made with the intention of retrieving information or data from a source (server) over the web. GET requests have no body, so the information that the source requires, in order to return the proper response, must be included in the request URL path or query string.
JSON: JavaScript Object Notation
JSON or JavaScript Object Notation is a data format suitable for transporting data to and from a server. const jsonObj = { It is essentially a slightly stricter version of a Javascript "name": "Rick", object. A JSON object should be enclosed in curly braces "id": "11A", and may contain one or more property-value pairs. JSON "level": 4 names require double quotes, while standard Javascript }; objects do not.
HTTP POST request
HTTP POST requests are made with the intention of sending new information to the source (server) that will receive it. For a POST request, the new information is stored in the body of the request.
Asynchronous calls with XMLHttpRequest
AJAX enables HTTP requests to be made not only during the load time of a web page but also anytime after a page const xhr = new XMLHttpRequest(); initially loads. This allows adding dynamic behavior to a xhr.open('GET', 'mysite.com/api/getjson'); webpage. This is essential for giving a good user experience without reloading the webpage for transferring data to and from the web server. The XMLHttpRequest (XHR) web API provides the ability to make the actual asynchronous request and uses AJAX to handle the data from the request. The given code block is a basic example of how an HTTP GET request is made to the specified URL. The query string in a URL Query strings are used to send additional information to the server during an HTTP GET request. const requestUrl The query string is separated from the original URL using = 'http://mysite.com/api/vendor? the question mark character ? . name=kavin&id=35412'; In a query string, there can be one or more key-value pairs joined by the equal character = . For separating multiple key-value pairs, an ampersand character & is used. Query strings should be url-encoded in case of the presence of URL unsafe characters.
XMLHttpRequest GET Request Requirements
The request type, response type, request URL, and handler for the response data must be provided in order const req = new XMLHttpRequest(); to make an HTTP GET request with the JavaScript req.responseType = 'json'; XMLHttpRequest API. req.open('GET', '/myendpoint/getdata? The URL may contain additional data in the query string. id=65'); For an HTTP GET request, the request type must be GET . req.onload = () => { console.log(req.response); };
req.send();
HTTP POST request with the XMLHttpRequest API
To make an HTTP POST request with the JavaScript XMLHttpRequest API, a request type, response type, const data = { request URL, request body, and handler for the response fish: 'Salmon', data must be provided. The request body is essential weight: '1.5 KG', because the information sent via the POST method is not units: 5 visible in the URL. The request type must be POST for }; this case. The response type can be a variety of types const xhr = new XMLHttpRequest(); including array buffer, json, etc. xhr.open('POST', '/inventory/add'); xhr.responseType = 'json'; xhr.send(JSON.stringify(data));
xhr.onload = () => {
console.log(xhr.response); }; ok property fetch api In a Fetch API function fetch() the ok property of a response checks to see if it evaluates to true or false . fetch(url, { In the code example the .ok property will be true method: 'POST', when the HTTP request is successful. The .ok property headers: { will be false when the HTTP request is unsuccessful. 'Content-type': 'application/json', 'apikey': apiKey }, body: data }).then(response => { if (response.ok) { return response.json(); } throw new Error('Request failed!'); }, networkError => { console.log(networkError.message) }) }
JSON Formatted response body
The .json() method will resolve a returned promise to a JSON object, parsing the body text as JSON. fetch('url-that-returns-JSON') The example block of code shows .json() method that .then(response => response.json()) returns a promise that resolves to a JSON-formatted .then(jsonResponse => { response body as a JavaScript object. console.log(jsonResponse); });
promise url parameter fetch api
A JavaScript Fetch API is used to access and manipulate requests and responses within the HTTP pipeline, fetching fetch('url') resources asynchronously across a network. .then( A basic fetch() request will accept a URL parameter, response => { send a request and contain a success and failure promise console.log(response); handler function. }, In the example, the block of code begins by calling the rejection => { fetch() function. Then a then() method is chained to the end of the fetch() . It ends with the response console.error(rejection.message); callback to handle success and the rejection callback to ); handle failure. Fetch API Function The Fetch API function fetch() can be used to create requests. Though accepting additional arguments, the fetch('https://api-to-call.com/endpoint', request can be customized. This can be used to change { the request type, headers, specify a request body, and method: 'POST', much more as shown in the example block of code. body: JSON.stringify({id: "200"}) }).then(response => { if(response.ok){ return response.json(); } throw new Error('Request failed!'); }, networkError => { console.log(networkError.message); }).then(jsonResponse => { console.log(jsonResponse); })
async await syntax
The async…await syntax is used with the JS Fetch API fetch() to work with promises. In the code block const getSuggestions = async () => { example we see the keyword async placed the function. const wordQuery = inputField.value; This means that the function will return a promise. The const endpoint keyword await makes the JavaScript wait until the = `${url}${queryParams}${wordQuery}`; problem is resolved. try{ const response = __~await~__ __~fetch(endpoint, {cache: 'no-cache'}); if(response.ok){ const jsonResponse = await response.json() } } catch(error){ console.log(error) } }