У меня есть небольшое приложение погоды. Я получаю данные о погоде через запрос «POST» и добавляю их в документ, который работает хорошо.
Пользователи могут запрашивать погоду по городу, теперь я хотел загрузить изображение этого города с помощью отдельного запроса jQuery $ Ajax ().
Однако я всегда получаю один и тот же результат.
Структура приложения, соответствующая приложению, выглядит следующим образом:
<input id="getIt" name="cityajax" type="text" class="ghost-input"
placeholder="Enter a City" required> // get user input, querying a city
<button id="submit">Submit</button>
<span class="humidLogo">Current humidity:</span> <i class="fas fa-temperature-low" ></i> <span class="apiHumidity"> % </span>
<div class="FlickResponse"></div> // flickrResposnse gets appended here
</div>
CSS не имеет значения, поэтому я сразу же проверяю соответствующую функцию JS:
var destination = $("#getIt").val(); // cache the user input, I am not sure I have to listen for a change event here and then update the state.
var flickerAPI =
"https://api.flickr.com/services/feeds/photos_public.gne?format=json&tags=" +
destination; // the url to get access the api
$.ajax({
url: flickerAPI,
dataType: "jsonp", // jsonp
jsonpCallback: "jsonFlickrFeed", // add this property
success: function(result, status, xhr) {
$(".FlickResponse").html(""); // here I want to empty the contents of the target div, but this never happens
$.each(result.items, function(i, item) {
$("<img>")
.attr("src", item.media.m)
.addClass("oneSizeFitsAll")
.appendTo(".FlickResponse");
if (i === 1) {
return false;
}
});
},
error: function(xhr, status, error) {
console.log(xhr);
$(".FlickResponse").html(
"Result: " +
status +
" " +
error +
" " +
xhr.status +
" " +
xhr.statusText
);
}
});
Это все. Так почему же я всегда получаю один и тот же ответ от API? Должен ли я слушать изменения событий в поле ввода? Поскольку запрос POSt работает без прослушивателя события изменения.
Это потому, что я запрашиваю 2 API и использую одно и то же поле ввода для значения (глупый вопрос, но вы никогда не знаете x).?
Вот кодекс с полным кодом, просто введите город и нажмите кнопку отправки:
https://codepen.io/damPop/pen/qLgRvp?editors=1010