28 lines
1.7 KiB
Markdown
28 lines
1.7 KiB
Markdown
|
---
|
|||
|
title: Learn About Jsonp
|
|||
|
localeTitle: Узнать о Jsonp
|
|||
|
---
|
|||
|
## JSONP
|
|||
|
|
|||
|
JSONP означает «JSON с отступом». Предположим, вы хотите сделать запросы AJAX в другом домене. Ну, вы не можете сделать это с помощью XMLHttpRequest, как обычно, но вы можете сделать это с помощью тегов скриптов, как показано [на StackOverflow](https://stackoverflow.com/questions/2067472/what-is-jsonp-all-about) :
|
|||
|
|
|||
|
```javascript
|
|||
|
script = document.createElement('script');
|
|||
|
script.type = 'text/javascript';
|
|||
|
script.src = 'http://www.someWebApiServer.com/some-data';
|
|||
|
```
|
|||
|
|
|||
|
Но это уродливо, теперь нам нужно получить элементы JSON из тега скрипта, брутто. К счастью, создатели JSONP думали заранее, поэтому вместо того, чтобы устанавливать наши скрипты, как мы делали выше, мы делаем это:
|
|||
|
|
|||
|
```javascript
|
|||
|
script.src = 'http://www.someWebApiServer.com/some-data?callback=my_callback';
|
|||
|
```
|
|||
|
|
|||
|
Это вызывает автоматический обратный вызов после загрузки данных, создавая функцию с данными, необходимыми внутри нее.
|
|||
|
|
|||
|
### Дополнительная информация:
|
|||
|
|
|||
|
* [Wikipidea / JSONP](https://en.wikipedia.org/wiki/JSONP)
|
|||
|
* [JSONP и JQuery](https://learn.jquery.com/ajax/working-with-jsonp)
|
|||
|
* [Больше JSONP с JQuery](http://api.jquery.com/jquery.getjson/#jsonp)
|
|||
|
* [Ajax и JSONP](http://stackoverflow.com/questions/5943630/basic-example-of-using-ajax-with-jsonp)
|