Estoy trabajando en un complemento de Microsoft Edge , obtuve la API de Pexels para trabajar con XMLHttpRequest , pero ahora estoy tratando de convertirlo en un objeto de solicitud . He buscado varias veces soluciones pero ninguna funcionó.
Código:
// Get PEXELs Image var page = Math.random()*250; var url = "https://api.pexels.com/v1/search?query=cute+pets&page="+page.toString()+"&per_page=1"; var headers = new Headers(); headers.append('Authorization', key); var er = new Request(url, {headers:headers}) var fr = fetch(er) .then(res => res.json()) var r = fr var photos = r.photos console.log("photos", photos) var raw = photos[0].src.original; console.log("raw", raw); // document.getElementById("image").src=raw;Producción:
photos undefined [Cute Pet Pictures] [LOG/ERROR] TypeError: Cannot read properties of undefined (reading '0') at getImage(popup.js:15) at HTMLDocument.onBLoad(popup.js:25) Object - next_page: [link] - page: 99 - per_page: 1 - photos: [{...}] - prev_page: [link] - total_results: 8000Objeto de fotos (que muestra solo las partes que necesita el script):
photos: Array(1) - 0: {... src: {original: [URL] ...} ...}Logré solucionarlo simplemente incrustando el código debajo de la variable "r"
var photos = r.photos console.log("photos", photos) var raw = photos[0].src.original; console.log("raw", raw); // document.getElementById("image").src=raw;en la función .then de la variable R.
El resultado final en el código:
var r = fr.then((json)=>{ print("json", json) var photos = json.photos console.log("photos", photos) var raw = photos[0].src.original; console.log("raw", raw); document.getElementById("image").src=raw; })