web-dev-qa-db-fra.com

Uncaught SyntaxError: Jeton inattendu u en JSON en position 0

Le message d'erreur suivant apparaît dans le journal de la console uniquement à la caisse et sur des pages de produit individuelles:

VM35594:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0
    at JSON.parse (<anonymous>)
    at run (layout.min.js:9)
    at app.min.js:1
    at main.min.js:2
    at Object.execCb (require.min.js:112)
    at Module.check (require.min.js:56)
    at Module.<anonymous> (require.min.js:72)
    at require.min.js:11
    at require.min.js:74
    at each (require.min.js:3)

J'utilise une extension d'extraction d'une page, mais l'erreur persiste lorsque je le désactive. Je pensais que cela avait peut-être quelque chose à voir avec les avis sur la page du produit (car je les avais déplacés), mais annuler cette modification ne corrigeait pas l'erreur sur les pages du produit.

25
Howli

Essayez ceci dans la console:

JSON.parse(undefined)

Voici ce que vous obtiendrez:

Uncaught SyntaxError: Unexpected token u in JSON at position 0
    at JSON.parse (<anonymous>)
    at <anonymous>:1:6

En d'autres termes, votre application tente d'analyser undefined, ce qui n'est pas un code JSON valide.

Il y a deux causes communes à cela. La première est que vous pouvez référencer une propriété inexistante (ou même une variable inexistante si vous n'êtes pas en mode strict).

window.foobar = '{"some":"data"}';
JSON.parse(window.foobarn)  // oops, misspelled!

La deuxième cause commune est l’échec de la réception du JSON, ce qui peut être causé par des scripts côté client qui ignorent les erreurs et envoient une demande alors qu’ils ne le devraient pas.

Assurez-vous que vos scripts côté serveur et côté client s'exécutent en mode strict et indiquez-les à l'aide de ESLint . Cela vous donnera une bonne assurance qu'il n'y a pas de fautes de frappe.

77
Seth Holladay

Comme @Seth Holladay @MinusFour a commenté, vous analysez une variable undefined.
Essayez d’ajouter une condition if avant d’effectuer l’analyse.

if (typeof test1 !== 'undefined') { test2 = JSON.parse(test1); }

Remarque: Il ne s’agit que d’une vérification de la casse undefined. Tout autre problème d'analyse doit encore être traité.

1
kn_pavan