Skip to content

Commit d1b4849

Browse files
committed
renovations
1 parent 13e6f93 commit d1b4849

6 files changed

Lines changed: 37 additions & 20 deletions

File tree

3-more/2-ajax/3-ajax-xmlhttprequest/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ xhr.ontimeout = function() {
326326
Кросс-браузерно:
327327

328328
```js
329-
var XHR = window.XDomainRequest || XMLHttpRequest;
329+
var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;
330330
var xhr = new XHR();
331331
```
332332

3-more/2-ajax/5-xhr-crossdomain/article.md

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,13 @@
1616

1717
```js
1818
// (1)
19-
var xhr = new XMLHttpRequest();
20-
if (!xhr.onload) { // это IE 8/9, в них старый XMLHttpRequest
21-
if (!window.XDomainRequest) throw new Error("Not supported");
22-
xhr = new XDomainRequest(); // ..но есть XDomainRequest
23-
}
19+
var XHR = ("onload" in new XMLHttpRequest()) ? XMLHttpRequest : XDomainRequest;
20+
21+
var xhr = new XHR();
2422

2523
// (2) запрос на другой домен :)
26-
xhr.open('GET', 'http://anywhere.com/vote.php', true);
24+
xhr.open('GET', 'http://anywhere.com/path', true);
2725

28-
// (3)
2926
xhr.onload = function() {
3027
alert(this.responseText);
3128
}
@@ -34,23 +31,18 @@ xhr.onerror = function() {
3431
alert('Ошибка ' + this.status);
3532
}
3633

37-
xhr.send('');
34+
xhr.send();
3835
```
3936

40-
Комментарии:
4137
<ol>
42-
<li>Мы создаём `XMLHttpRequest` и проверяем, поддерживает ли он событие `onload`. Если нет, то это старый `XMLHttpRequest`. Возможно, у нас IE8-9, значит надо попробовать `XDomainRequest`.</li>
43-
<li>Запрос на другой домен отсылается просто указанием соответствующего URL в `open`. Он должен быть асинхронным.</li>
44-
<li>Все браузеры, которые поддерживают кросс-доменные запросы, поддерживают и события `onload/onerror`, которые можно использовать вместо `onreadystatechange`.</li>
38+
<li>Мы создаём `XMLHttpRequest` и проверяем, поддерживает ли он событие `onload`. Если нет, то это старый `XMLHttpRequest`, значит это IE8,9, и используем `XDomainRequest`.</li>
39+
<li>Запрос на другой домен отсылается просто указанием соответствующего URL в `open`. Он обязательно должен быть асинхронным, в остальном -- никаких особенностей.</li>
4540
</ol>
4641

4742

43+
## Контроль безопасности
4844

49-
### Контроль безопасности
50-
51-
Контроль безопасности осуществляется на уровне браузера.
52-
53-
**В кросс-доменный запрос браузер автоматически добавляет заголовок `Origin`, содержащий домен, с которого осуществлён запрос.**
45+
В кросс-доменный запрос браузер автоматически добавляет заголовок `Origin`, содержащий домен, с которого осуществлён запрос.
5446

5547
В данном случае заголовки будут примерно такие:
5648

@@ -70,7 +62,7 @@ Origin:http://javascript.ru
7062
Сервер должен, со своей стороны, ответить специальными заголовками, разрешает ли он такой запрос к себе.
7163

7264

73-
**Если сервер разрешает кросс-доменный запрос с этого домена -- он должен добавить к ответу заголовок `Access-Control-Allow-Origin`, содержащий домен запроса или звёздочку `*`.**
65+
**Если сервер разрешает кросс-доменный запрос с этого домена -- он должен добавить к ответу заголовок `Access-Control-Allow-Origin`, содержащий домен запроса (в данном случае "javascript.ru") или звёздочку `*`.**
7466

7567
Только при наличии такого заголовка в ответе -- браузер сочтёт запрос успешным, а иначе JavaScript получит ошибку.
7668

3-more/2-animation/1-js-animation/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ function elastic(progress, x) {
364364
```
365365

366366
**График для `x=1.5`:**
367-
<img src="elastic.png">
367+
<img src="elastic.svg">
368368

369369
Пример для `x=1.5`:
370370
<div onclick="move(this.children[0], elastic, 2000)" class="example_path">
-4.16 KB
Binary file not shown.
Lines changed: 25 additions & 0 deletions
Loading

figures.sketch

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)