Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

255
Visualizações
La solicitud E6 Ajax no funciona

Tengo una secuencia de comandos en la que quiero obtener algunos datos json de un punto final, pero aparece un error, esta es mi secuencia de comandos:

 function httpGet(url) { return new Promise( function (resolve, reject) { var request = new XMLHttpRequest(); request.onreadystatechange = function () { if (this.status === 200) { // Success resolve(this.response); } else { // Something went wrong (404 etc.) reject(new Error(this.statusText)); } } request.onerror = function () { reject(new Error( 'XMLHttpRequest Error: '+this.statusText)); }; request.open('GET', url); request.send(); }); } var url = 'https://api.jsonPlaceholder.com'; httpGet(url) .then(JSON.parse) .then((r) => { console.log(r); }).catch(function(error) { console.log(error); });

Luego, en la consola arroja un error:

Error en XMLHttpRequest.request.onreadystatechange (app.js:11) en app.js:18 en Promise () en httpGet (app.js:2) en app.js:25

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

No puede simplemente verificar status , debe verificar readyState == 4 antes de poder decidir qué sucedió:

 function httpGet(url) { return new Promise( function (resolve, reject) { var request = new XMLHttpRequest(); request.onreadystatechange = function () { if (this.readyState === 4) { // *** if (this.status === 200) { // Success resolve(this.response); } else { // Something went wrong (404 etc.) reject(new Error(this.statusText)); } } // *** } request.onerror = function () { reject(new Error( 'XMLHttpRequest Error: '+this.statusText)); }; request.open('GET', url); request.send(); }); }

La especificación dice que acceder a this.response antes de que se complete la solicitud debería devolver una cadena vacía, pero para mí, usando Chrome v57, al hacerlo, aparece el error que citó. Agregar la verificación readyState lo soluciona.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda