Maison > interface Web > js tutoriel > 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
Libérer: 2024-10-19 22:57:02
original
636 Les gens l'ont consulté

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);
}
Copier après la connexion

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!"
    });
});
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal