Я пытаюсь создать небольшую программу, которая включает в себя получение ввода zipcode и получение связанного города с использованием http://www.zippopotam.us/. В конце концов я проанализирую данные города и сохраню переменную, как только программа будет разработана. Возможно, используйте длинный/лат для более конкретных регионов.onsubmit для ввода текста в zipcode. XMLhttprequest: ввод zip, return city
При использовании ниже код, после того, как первоначальный почтовый индекс введен, он работает, как и планировалось, и я вижу предупреждение с предполагаемым результатом JSON. После первоначального ввода zip, как только zip будет изменен и отправлен снова, он не работает. Обновленный почтовый индекс отображается в URL-адресе, но он исчезает из поля ввода текста, а функция не выполняется. Для его работы требуется второе представление. Почему это происходит и как я могу обойти это?
www.zippopotam.us/ хороший способ пойти об этом или есть лучшие варианты?
.
<div id="location">
<form onsubmit="city()">
<input type="text" name="loc" id="loc" />
</form>
</div>
function city(){
var zip = $('#loc').val();
var client = new XMLHttpRequest();
client.open("GET", "http://api.zippopotam.us/us/"+zip, true);
client.onreadystatechange = function() {
if(client.readyState == 4) {
alert(client.responseText);
};
};
client.send();
}
Спасибо за ваш ответ. При более близком рассмотрении, я вижу, что ответ HTTP с целевого сервера показывает Access-Control-Allow-Origin: *. Я понимаю, что * означает, что ресурс может быть доступен любым доменом на межсайтовой основе. Теперь у меня это работает в firefox, но не в сафари. Не уверен, что разница в браузере останавливает работу сафари. – DVCITIS