У меня нет проблем с выполнением запросов jsonp, однако я не уверен в настройке веб-службы для доставки ответов в jsonp.
Во-первых, нужно ли настраивать сервер определенным образом, чтобы разрешать запросы jsonp, или странице просто нужно правильно отформатировать ответ?
В моем тестировании у меня был следующий ответ jsonp от geonames.org (я поместил его на пустую страницу на сервере / домене 1 и ничего больше):
<?php echo $_GET['callback'];?>({"postalcodes":[{"adminName2":"Westchester","adminCode2":"119","postalcode":"10504","adminCode1":"NY","countryCode":"US","lng":-73.700942,"placeName":"Armonk","lat":41.136002,"adminName1":"New York"}]});
На сервере / домене 2 я делаю следующий запрос:
$.ajax({
// works when I make the call to geonames.org instead of domain1
//url: 'http://www.geonames.org/postalCodeLookupJSON?postalcode=10504&country=US&callback=?',,
url: 'http://www.domain1.com/test/jsonp.php?callback=?',
success: function(data) {
$('#test').html(data);
},
});
Вызов работает, когда я размещаю файлы на одном сервере (в домене 1 или 2) и превращаю его в обычный запрос json. Что я делаю не так?
Просто чтобы уточнить: Мой вопрос относится к странице ПОЛУЧЕНИЕ запроса. Я знаю, что запрос работает, когда я делаю это на geonames.org, flickr и т. Д. Apis. Тем не менее, я пытаюсь настроить страницу для отправки ответа. В моем примере у меня просто пустая страница с жестко закодированным jsonp. Я не уверен, что мне нужны другие заголовки на странице или что-то на моем сервере включено.