2016-01-16 4 views
-1

Я пытаюсь создать очень малое обслуживание с использованием Apache Cordova и JavaScript, как правило, я стараюсь избегать JS и использовать готовые решения, но этот вопрос совершенно уникален.Ответа на этот вопрос от getJSON

Мое приложение очень простое, оно проверяет текущие координаты (я использую API геолокации, отлично работает), и он просматривает координаты с помощью API uk-postcodes.com и ищет соответствующий почтовый индекс, а мое приложение должно отобразите его. По какой-то причине я не могу сделать запрос к uk-почтовым индексам. Мой текущий код выглядит следующим образом:

var url = "http://uk-postcodes.com/latlng/" + position.coords.latitude + "," + position.coords.longitude + ".json?callback=json"; 

$.getJSON(url, function (json) { 
    console.log(json.postcode); 
}); 

Я был в состоянии отобразить переменную URL и он работает нормально, так что это не является источником моей проблемы. Он выглядит так (пример) http://uk-postcodes.com/latlng/51.5000,0.1167.json, и он отлично работает.

Моя проблема сидит где-то внутри кода .getJSON, но я недостаточно опыт, чтобы решить, и я не получаю никаких ошибок в консоли.

+5

Что можно сказать в консоли? Вы уверены, что запросы Cross Origin разрешены? –

+0

Почему вы добавили 'callback = json' в URL? – Quentin

+0

Вы всегда должны добавлять '.fail (function() {/ * вашу обработку ошибок * /})' к вашему 'getJSON', иначе вы не получите информацию, если что-то пошло не так. –

ответ

0

Вы получаете сообщение об ошибке, потому что вы выполняете запрос на другую страницу сервера, не поддерживающую CORS. Вам нужно будет использовать прокси-сервер CORS - например, https://crossorigin.me.

Просто добавьте https://crossorigin.me/, прежде чем вы URL, и вы будете хорошо идти:

url = 'https://crossorigin.me/' + url; 
Смежные вопросы