Résolution de l'erreur « Jeton inattendu Colon JSON » dans jQuery.ajax#get
Dans votre tentative de récupération de données JSON à partir d'une API minimaliste que vous avez créé dans Node.js, vous avez rencontré une erreur « Jeton inattendu : » dans Chrome. Cette erreur se produit généralement en raison d'une inadéquation entre la réponse JSON attendue et réelle du serveur.
Lors d'un appel AJAX à l'aide de jQuery.ajax#get et en spécifiant le type de données comme « jsonp », la réponse du serveur nécessite un "padding" (P) pour prendre en charge les requêtes JSONP. JSONP est une technique qui permet les requêtes inter-domaines en encapsulant les données JSON dans un appel de fonction.
Pour résoudre ce problème, vous devez modifier le code côté serveur pour inclure le remplissage dans la réponse. Dans votre code Node.js, ajoutez les lignes suivantes :
var callback = req.query.callback; var data = JSON.stringify({ Name : "Tom", Description : "Hello it's me!" }); if (callback) { res.setHeader('Content-Type', 'text/javascript'); res.end(callback + '(' + data + ')'); } else { res.setHeader('Content-Type', 'application/json'); res.end(data); }
Alternativement, si vous utilisez Express.js, vous pouvez utiliser la méthode res.jsonp(), qui gère automatiquement l'ajout du remplissage :
app.get( '/', function( req, res ) { console.log( 'req received' ); res.jsonp({ Name : "Tom", Description : "Hello it's me!" }); });
Avec ces modifications, le serveur enverra une réponse JSONP enveloppée dans un appel de fonction, qui peut être analysée par jQuery.ajax#get sans rencontrer l'erreur "Jeton inattendu".
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!