Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f532513

Browse files
authored
Merge pull request HackYourFuture#13 from AbdulRahmanDbes/master
Add an explanation about XHR
2 parents f25a05a + 19dea24 commit f532513

File tree

1 file changed

+50
-1
lines changed

1 file changed

+50
-1
lines changed

Week5/REVIEW.MD

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,53 @@ this review covers:
1111

1212
## Callbacks
1313

14-
- JavaScript callback functions tutorial: https://www.youtube.com/watch?v=pTbSfCT42_M&index=17&list=WL
14+
- JavaScript callback functions tutorial: https://www.youtube.com/watch?v=pTbSfCT42_M&index=17&list=WL
15+
16+
## XMLHttpRequest
17+
**XMLHttpRequest** is an object to interact with servers. You can retrieve data from a URL without having to do a full page refresh. XMLHttpRequest is used heavily in Ajax programming - [MDN](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest).
18+
19+
So what is Ajax?
20+
**Ajax** is a method of exchanging data with a server, and updating parts of a web page without reloading the entire page.
21+
22+
Let's dive into the code:
23+
24+
First, we need to make an instance from 'XMLHttpRequest' object.
25+
```js
26+
var http = new XMLHttpRequest();
27+
```
28+
When we are doing a request it goes through 5 states:
29+
* 0 : request is not initialized.
30+
* 1 : request has been set up.
31+
* 2 : request has been sent.
32+
* 3 : request is in process.
33+
* 4 : request is complete.
34+
35+
In the code below we are checking if the request is complete or not, and we check the status == 200 just to make sure that we do not get a 404 error - Read more about it here: [HTTP Status Code](https://httpstatuses.com).
36+
```js
37+
http.onreadystatechange = function() {
38+
if ( http.readyState == 4 && http.status == 200) {
39+
console.log('Response from the server: ' + http.response);
40+
}
41+
}
42+
```
43+
There are methods to deal with a server like (GET, POST, UPDATE, DELETE…)
44+
45+
* GET: retrieve data from server.
46+
* POST: send data to server.
47+
* UPDATE: update data on the server.
48+
* DELETE: delete date from the server.
49+
50+
To initialize a request we use [open](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open) method. The syntax is:
51+
```js
52+
XMLHttpRequest.open(method, url, async, user, password);
53+
```
54+
The parameters _method_ and _url_ are mandatory, _user_ and _password_ are optional. True is a default value for _async_.
55+
56+
```js
57+
http.open("GET", URL, true/false);
58+
```
59+
At the end we have to send our request to the server through [send](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send) method. In our situation we are retrieving a data from the server, so we do not have to pass a parameter to the send request.
60+
61+
```js
62+
http.send();
63+
```

0 commit comments

Comments
 (0)