Я довольно новый, когда дело доходит до работы с Api's. Я пытаюсь запросить строку URL и вернуть некоторые Gif.
const gifForm = document . querySelector ( "# gif-form" ); gifForm . addEventListener ( "submit" , fetchGiphs ); функция fetchGiphs ( e ) { e . preventDefault (); const searchTerm = document . querySelector ( "#search" ). ценность ; fetch (` https : //api.giphy.com/v1/gifs/search?&q = $ {searchTerm} & limit = 100 & api_key = 3mIxmBZUIIPyb8R69gtxaW8Hsh74dFKV`) . then (( response ) => { return response . json (); }) . затем ( data => showGiphs ( data . images . fixed_width . url )) . затем ( err => console . log ( err )); } function showGiphs ( fixed_width ) { const results = document . querySelector ( "#results" ); let output = '<div class = "container">' ; fixed_width . forEach (( url ) => { console . log ( url ); output + = ` < img src = " $ {data.images.original.fixed_width_url} " /> `; }); документ . getElementById ( 'results' ). innerHTML = output ; } -lang = "js" <form id = "gif-form" > <input type = "text" id = "search" > <input type = "submit" value = "find" > </ form> <div id = "results" > </ div> -hide = "false" data-console = "true" data-babel = "false">
.then(data => showGiphs(data.images.fixed_width.url))
console.log
Если я удалю fetch.then.then.data
из выборки и только data
данные, она вернет результаты поиска, которые я хочу. Тем не менее, когда я пытаюсь сопоставить gif «data.images.fixed_width.url, я получаю консольную ошибку« Uncaught (в обещании) TypeError: невозможно прочитать свойство «fixed_width» undefined »atconst gifForm = document.querySelector("#gif-form"); gifForm.addEventListener("submit", fetchGiphs); function fetchGiphs(e) { e.preventDefault(); const searchTerm = document.querySelector(".search").value; fetch(`https://api.giphy.com/v1/gifs/search?&q=${searchTerm}&limit=100&api_key=3mIxmBZUIIPyb8R69gtxaW8Hsh74dFKV`) .then((response) => {return response.json(); }) .then((resp => { // Here we get the data array from the response object let dataArray = resp.data // We pass the array to showGiphs function showGiphs(dataArray); })) .catch(err => console.log(err)); // We use catch method for Error handling } function showGiphs(dataArray) { const results = document.querySelector(".results"); let output = '<div class="container">'; dataArray.forEach((imgData) => { output += ` <img src="${imgData.images.fixed_width.url}"/> `; }); document.querySelector('.results').innerHTML = output; }
Любая помощь или толчок в правильном направлении была бы потрясающей! Спасибо! Кроме того, если вы хотите просмотреть демо, вы можете просмотреть его здесь: https://codepen.io/Brushel/pen/jKgEXO?editors=1010
javascript,get,xmlhttprequest,fetch,