2017-09-22 7 views
0

Comment puis-je enregistrer des réponses incorrectes dans une instruction fetch?
Mon code ressemble à ceci:Réagir Natif: Log incorrect responses

eturn fetch('myurl.com', { 
     method: 'GET', 
     headers: { 
      'Accept': 'application/json', 
      'Content-Type': 'application/json', 
     }, 
    }).then((response) => response.json()) 
     .then((responseData) => { 
      console.log(responseData); // This logs nothing 
     }).catch((error) => { 
      console.log("Error " + error); // This logs something 
     }); 

Le journal de mon exemple de code est Error SyntaxError: JSON Parse error: Unrecognized token '<'. Je pense que c'est parce que XDebug envoie des messages d'erreur, mais je n'ai absolument aucune idée de ce qui pourrait avoir mal tourné. Il semble que la réponse commence par '<', donc je pense que c'est une balise html.

Est-il possible de montrer cette réponse? Ce serait très utile pour trouver mon erreur.

+1

pour le débogage enlever la '.alors ((réponse) => response.json())' partie, après le débogage ramener – Cherniv

Répondre

0

essayer et assurez-vous que l'URL retour format JSON correct:

fetch(url) 
     .then(res => res.json()) 
     .then(res => { 
      this.setState({ 
       loading: false, 
       data: res.data 
      },() => { 
       console.log("log something") 
      }); 
     }) 
     .catch(error => { 
      console.log(error); 
      this.setState({ loading:false, error }); 
     }); 
+0

C'est mon problème. Je ne veux pas voir ce que ** exactement ** renvoie, car je ne trouve aucun problème lors du débogage de mon code PHP derrière l'url. Avec votre code, je reçois exactement la même erreur. 'Erreur SyntaxError: JSON Erreur d'analyse: Jeton non reconnu '<'' – Tekk

+0

Eh bien, cela signifie que votre URL ne renvoie pas json. Supprimer la première ligne .then et réessayer? et utilisez data: res au lieu de data: res.data. Si vous êtes sûr que votre URL retournera json alors gardez la première ligne .then et faites juste console.log (res) – blacksun

+0

Je suis assez sûr que l'URL ne renvoie pas le bon format json. S'il vous plaît fournir l'URL afin que nous puissions vous aider. – blacksun