SyntaxError: Unexpected token < in JSON at position 0
indique que la requête HTTP attendait une réponse en format JSON, mais a reçu des données autres qu'en format JSON à la place.Cet article présente des conseils pour la résolution de l'erreur SyntaxError: Unexpected token < in JSON at position 0
et des variantes les plus fréquentes :
SyntaxError: The string did not match the expected pattern
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
JSON Parse error: Unrecognized token '<'
Cette erreur se produit lorsqu'une requête attend une réponse JSON, mais que la réponse est reçue dans un format différent. L'analyseur syntaxique JSON génère une erreur lorsqu'il détecte une réponse non valide.
Les causes possibles à l'origine de cette erreur comprennent celles qui suivent :
Content-Type
n'est pas défini à application/json
.
Dans de nombreux cas, la réponse inattendue est au format HTML ou XML et contient les détails d'une erreur côté serveur.
Ajoutez un code de gestion des erreurs et affichez les données d'erreur et de réponse dans la console afin de déterminer pourquoi vous n'avez pas reçu de format JSON valide. La façon dont les données sont affichées dépend de si le code utilise fetch()
ou JSON.parse()
.
Voici les causes les plus courantes et leurs solutions :
fetch()
est correcte.fetch()
Une fonction JavaScript fetch()
peut ressembler à ce qui suit :
L'erreur se produit lorsque response.json()
est appelé et que les données ne peuvent pas être analysées en format JSON. Par exemple, la réponse peut être au format HTML ou XML.
Affichez les données sur la console en créant une gestion de la réponse et en ajoutant une fonction pour gérer l'erreur :
Un objet response
ne peut être lu qu'une seule fois. Par conséquent, il faut le cloner pour l'afficher sur la console avant que la réponse d'origine soit lue à la ligne 5.
À la ligne 8, nous avons ajouté une fonction de gestion des erreurs. Si response.json()
échoue, la fonction est appelée, et l'erreur et les données responseClone
sont affichées dans la console à des fins de vérification.
JSON.parse()
Si le code utilise JSON.parse(data)
, affichez les données de réponse dans la console en ajoutant une instruction try…catch
pour gérer l'erreur :