Maison > interface Web > js tutoriel > le corps du texte

Comment résoudre l'erreur « Jeton inattendu Colon JSON après jQuery.ajax#get » ?

Linda Hamilton
Libérer: 2024-10-19 22:52:02
original
607 Les gens l'ont consulté

How to Resolve the

'Jeton inattendu Colon JSON après jQuery.ajax#get' : un guide complet

Introduction

Ce problème survient lorsque vous tentez d'effectuer une requête AJAX à l'aide de jQuery et recevez des données d'un serveur qui renvoie JSON dans un format incompatible avec la configuration de la requête. Cela peut être frustrant, mais comprendre la cause première et appliquer la solution appropriée peut le résoudre.

La cause profonde

L'erreur « Jeton inattendu colon JSON après jQuery. ajax#get" se produit lorsque le serveur renvoie des données JSON sans remplissage approprié ni paramètre de chaîne de requête de rappel. JSONP (JSON with Padding) est une technique utilisée lors des requêtes d'origine croisée, où le serveur encapsule les données JSON dans un appel de fonction pour éviter les restrictions de sécurité du navigateur. Cependant, si le serveur ne parvient pas à inclure le paramètre de remplissage ou de rappel, le navigateur interprétera la réponse comme un JSON non valide.

La solution

Pour résoudre ce problème, vous devez vous assurer que le serveur génère correctement les réponses JSONP. Cela signifie envelopper les données JSON dans un appel de fonction et garantir l'inclusion du paramètre de rappel dans la chaîne de requête.

Dans Node.js Express

Dans Node.js Express, vous pouvez utiliser la méthode res.jsonp() pour générer des réponses JSONP :

app.get('/', (req, res) => {
  res.jsonp({
    Name: 'Tom',
    Description: 'Hello it's me!'
  });
});
Copier après la connexion

Alternativement, vous pouvez ajouter manuellement le paramètre de remplissage et de rappel :

const callback = req.query.callback;
const 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

Dans jQuery

Côté client, vous pouvez configurer votre requête AJAX pour utiliser JSONP en spécifiant l'option dataType : 'jsonp' :

$.ajax({
  url: findUrl,
  type: 'get',
  dataType: 'jsonp',
  success: (data) => {
    // ...
  },
  error: (jqXHR, textStatus, errorThrown) => {
    // ...
  }
});
Copier après la connexion

Conclusion

En vous assurant que le serveur génère correctement les réponses JSONP et que le client configure sa requête AJAX de manière appropriée, vous pouvez éviter l'erreur « Jeton inattendu deux points JSON après jQuery.ajax#get » et récupérer avec succès les données JSON de votre serveur. .

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