"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment résoudre l'erreur « Jeton inattendu deux-points » dans les requêtes JSONP à l'aide de jQuery.ajax#get ?

Comment résoudre l'erreur « Jeton inattendu deux-points » dans les requêtes JSONP à l'aide de jQuery.ajax#get ?

Publié le 2024-11-02
Parcourir:602

How to Resolve \

Côlons de jeton inattendu : résolution des erreurs JSONP dans jQuery.ajax#get

Lorsque vous rencontrez une erreur "Côlons de jeton inattendus" dans jQuery.ajax #get, il est important de comprendre la nature des requêtes JSONP (JSON with Padding). JSONP implique de renvoyer les données JSON à un appel de fonction JavaScript global côté client.

Pour prendre en charge JSONP, le serveur doit inclure le « Padding » dans la réponse. Le "Padding" est constitué d'un nom de fonction de rappel suivi des données JSON entre parenthèses :

jQuery111108398571682628244_1403193212453({"Name":"Tom","Description":"Hello it's me!"})

Dans cet exemple, le nom de la fonction de rappel est jQuery111108398571682628244_1403193212453. L'erreur se produit car JavaScript analyse JSONP comme JavaScript, où {...} représente également des blocs.

Pour corriger cette erreur, le serveur doit inclure le « Padding » dans la réponse. De plus, jQuery inclura généralement un paramètre de chaîne de requête de rappel avec le nom de la fonction. Pour cela, le code du serveur peut utiliser une instruction conditionnelle pour vérifier le paramètre de rappel et envoyer la réponse en conséquence :

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, ExpressJS fournit une méthode res.jsonp() qui gère déjà cette condition, ce qui facilite le renvoi des réponses JSONP :

app.get( '/', function( req, res ) {
    console.log( 'req received' );

    res.jsonp({
        Name : "Tom",
        Description : "Hello it's me!"
    });
});
Déclaration de sortie Cet article est reproduit sur: 1729349598 S'il y a une contrefaçon, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3