JSONP: нужен ли обратный вызов?
Я создаю приложение для iOS / Droid с использованием AJAX, jQuery и Phonegap. Бэкэнд - это сайт Drupal 7, обслуживающий контент через веб-сервисы. Однако я немного запутался в необходимости обратного вызова JSONP.
Насколько я понимаю, JSONP необходим для разрешения междоменных запросов. И, частично, он работает, оборачивая данные JSON в функцию обратного вызова, тем самым превращая их в объект.
Однако я обнаружил, что могу отправить запрос JSONP без обратного вызова и проанализировать данные через jQuery без функции обратного вызова. Таким образом, данные JSONP выглядят точно так же, как данные JSON.
Я что-то пропустил? Если предоставление данных в виде функции является одним из преимуществ JSONP, не нужно ли это на каком-то этапе процесса? Я обхожу некоторый уровень безопасности, не посылая параметр обратного вызова?
Спасибо!
К вашему сведению, вот код JQuery AJAX:
$.ajax({
type: 'GET',
cache: false,
url: 'http://www.example.com/mobile/menu/devel-gosto.jsonp',
dataType: 'jsonp',
timeout: menuLoadTimeout,
success: function (data) {
menu = populateSlider(data.tree, 0);
}
});
Поэтому я устанавливаю dataType на «jsonp», вызывая веб-сервис, который возвращает данные JSONP, но оставляя обратный вызов вне URL. Веб-сервис отвечает без оболочки обратного вызова. И все работает отлично.