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

Pourquoi ma requête jQuery AJAX envoie-t-elle des données sous forme de texte brut au lieu de JSON ?

DDD
Libérer: 2024-10-29 22:46:02
original
458 Les gens l'ont consulté

Why is my jQuery AJAX request sending data as plain text instead of JSON?

Envoi efficace de données JSON avec jQuery

Dans le développement Web, il est souvent crucial de transmettre efficacement les données entre le côté client et le serveur. jQuery, une bibliothèque JavaScript populaire, propose des méthodes pratiques pour gérer un tel échange de données. Une tâche courante consiste à envoyer des données au format JSON au serveur à l'aide de jQuery.

Cependant, les développeurs rencontrent parfois un problème où les données ne sont pas transmises au format JSON souhaité mais sous forme de texte brut. Pour comprendre pourquoi cela se produit, examinons un extrait de code :

var arr = {City:'Moscow', Age:25};
$.ajax(
   {
        url: "Ajax.ashx",
        type: "POST",
        data: arr,
        dataType: 'json',
        async: false,
        success: function(msg) {
            alert(msg);
        }
    }
);
Copier après la connexion

Ce code tente d'envoyer les données de l'objet arr au serveur Ajax.ashx à l'aide de la méthode $.ajax. Cependant, le problème survient car le code ne spécifie pas le type de contenu de la requête ni ne construit correctement la requête JSON.

Pour remédier à cela, la méthode JSON.stringify doit être utilisée pour convertir l'objet JavaScript en une chaîne JSON native. :

var arr = { City: 'Moscow', Age: 25 };
$.ajax({
    url: 'Ajax.ashx',
    type: 'POST',
    data: JSON.stringify(arr),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    async: false,
    success: function(msg) {
        alert(msg);
    }
});
Copier après la connexion

Points clés à noter :

  • contentType : Spécifie le type de contenu de la requête, indiquant au serveur qu'un La requête JSON est en cours d'envoi.
  • dataType : Indique le type de réponse attendu du serveur.
  • JSON.stringify : Convertit l'objet JavaScript en une chaîne JSON.

Considérations supplémentaires :

  • L'objet arr est en fait un objet JavaScript, pas un tableau. Les tableaux doivent être notés par [].
  • Soyez attentif à la réponse du serveur et vérifiez que son en-tête Content-Type reflète correctement une réponse JSON. Sinon, jQuery tentera d'analyser la réponse en tant que JSON quel que soit son format réel.

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.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!