У меня нет проблем с выполнением запросов 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. Я не уверен, нужны ли мне другие заголовки на странице или что-то включено на моем сервере.