Maison  >  Article  >  interface Web  >  Comment corriger l'erreur « Jeton inattendu Colon JSON » dans jQuery.ajax#get ?

Comment corriger l'erreur « Jeton inattendu Colon JSON » dans jQuery.ajax#get ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-19 22:57:02582parcourir

How to Fix the

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn