2017-06-16 1 views
0

J'utilise ES6 et Fetch.Javascript va pas chercher à lire JSON

Il me donne cette erreur:

Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0 

Voici le code:

fetch('list.json').then(function(response) { 
    return response.json(); 
    }).then(function(j) { 

    console.log(j); 
    }); 

et voici les données de list.json:

[ 
    { 
    "id": 1, 
    "name": "name1" 
    }, 
    { 
    "id": 2, 
    "name": "name2" 
    } 
] 

Pourquoi je suis Je reçois cette erreur et comment puis-je résoudre ce problème?

+2

La réponse est pas JSON mais html. Probablement un message d'erreur. Regardez dans la console. –

+0

Je suppose que le serveur renvoie une erreur sous la forme d'une page HTML. Pouvez-vous vérifier la réponse que vous obtenez? (Par exemple onglet Réseau Outils Chrome Dev) – yadejo

+0

Il semble que chercher est d'obtenir un fichier HTML, avez-vous un fichier HTML 404 ou quelque chose comme ça? – dloeda

Répondre

0

Ce n'est pas un fichier JSON valide. Valable JSON serait comme ce

{ 
    "data":[ 
    { 
     "id": 1, 
     "name": "name1" 
    }, 
    { 
     "id": 2, 
     "name": "name2" 
    } 
    ] 
} 
0

Vous n'êtes pas l'envoi d'un JSON qui est compris par la méthode .json correctement, vous devez simplement jeté dans la manière indiquée et tout devrait être bon d'aller.

correcte JSON:

{ "products" : [ 
    { "Name": "Cheese", "Price" : 2.50, "Location": "Refrigerated foods"}, 
    { "Name": "Crisps", "Price" : 3, "Location": "the Snack isle"}, 
    { "Name": "Pizza", "Price" : 4, "Location": "Refrigerated foods"}, 
    { "Name": "Chocolate", "Price" : 1.50, "Location": "the Snack isle"}, 
    { "Name": "Self-raising flour", "Price" : 1.50, "Location": "Home baking"}, 
    { "Name": "Ground almonds", "Price" : 3, "Location": "Home baking"} 
]}