Веб-приложения на JavaScript

Page 68

Заполнение нашей модели ORM

67

Затем мы определяем функцию с глобальным доступом. Как только сценарий бу­ дет загружен, будет вызвана эта функция: window.jsonCallback = function(result){ // Заполнение результата

> И все же это не простой процесс. К счастью, jQuery оформляет его в кратком API: jQuery.getJSON("http://example.com/data.json?callback=?H, function(result)

{

// Заполнение результата

»; jQuery ставит вместо последнего вопросительного знака в показанном выше URL случайным образом выбранное имя временной функции, создаваемой этой би­ блиотекой. Вашему серверу нужно прочитать аргумент вызова обратной функции и использовать его в качестве имени возвращаемой функции, в которую заключа­ ются данные.

Безопасность при использовании междоменных запросов Если вы открываете свой сервер для междоменных запросов или JSONP из любо­ го домена, нужно серьезно подумать о безопасности. Обычно политика междомен­ ных запросов не дает злоумышленнику вызвать, скажем, API Твиттера и извлечь ваши персональные данные, CORS и JSONP полностью изменяют положение вещей. При обычном Ajax-запросе все cookie-файлы вашей сессии отправляются вместе с запросом, значит, вы будете зарегистрированы в API Твиттера. Любые потенциальные злоумышленники получают полный контроль над вашей учетной записью, поэтому вопросы безопасности выходят на первый план. Если при использовании CORS/JSONP вы не указываете, какой домен может получить доступ к вашему API, нужно брать в расчет ряд ключевых обстоя­ тельств: О не показывайте никакой ценной информации, к примеру, адреса электронной почты; О не разрешайте никаких действий (например, «отслеживания» Твиттера). В качестве альтернативных мер просто создайте исчерпывающий список доменов, которым разрешено подключение, или же воспользуйтесь аутентификацией с по­ мощью открытого протокола авторизации ОAuth.

Заполнение нашей модели ORM Заполнение нашей модели ORM данными является совсем несложным процес­ сом. Для этого нужно всего лишь извлечь данные с сервера, после чего обновить записи нашей модели. Давайте добавим к объекту Model функцию populate(),


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.