Que signifie jquery ajax contentType ?
phpcn_u1582
phpcn_u1582 2017-07-05 11:02:37
0
6
959

Le contentType de la requête POST est défini sur application/json, mais la requête convertit le json des données en chaîne ?
S'il vous plaît, donnez-moi quelques conseils ?
Le code est le suivant

$.ajax({
        method: 'POST',
        url: "demo_test.txt",
        data: {
            aa: 1,
            bb: 2
        },
        contentType: "application/json",
        success: function (result) {}
    });

Demander la capture de paquets

POST http://localhost:8888/demo_test.txt HTTP/1.1
Host: localhost
Connection: keep-alive
Content-Length: 9
Origin: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.81 Safari/537.36
Content-Type: application/json
Accept: */*
X-Requested-With: XMLHttpRequest
Referer: http://172.17.35.112:8099/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: selectFluence=4; VFS_USERNAME=admin; VFS_PASSWORD=123456; VFS_APPURL=; VFS_ISSAVE=true; VFS_ISDMZ=true; webserver_is_save=0; _alert=1495876699555

aa=1&bb=2
phpcn_u1582
phpcn_u1582

répondre à tous(6)
漂亮男人

参考:jQuery.ajax() ici

contentType (par défaut : 'application/x-www-form-urlencoded; charset=UTF-8')

Type : Booléen ou Chaîne

Lors de l'envoi de données au serveur, utilisez ce type de contenu. La valeur par défaut est "application/x-www-form-urlencoded; charset=UTF-8", ce qui convient dans la plupart des cas. Si vous transmettez explicitement un type de contenu à $.ajax(), alors il est toujours envoyé au serveur (même si aucune donnée n'est envoyée). Depuis jQuery 1.6, vous pouvez passer false pour indiquer à jQuery de ne définir aucun en-tête de type de contenu. Remarque : La spécification XMLHttpRequest du W3C impose que le jeu de caractères soit toujours UTF-8 ; spécifier un autre jeu de caractères n'obligera pas le navigateur à modifier l'encodage. Remarque : Pour les requêtes inter-domaines, définir le type de contenu sur autre chose que

déclenchera l'envoi par le navigateur d'une requête OPTIONS de contrôle en amont au serveur.application/x-www-form-urlencoded, multipart/form-data, or text/plain

一般是用

我平时见得不多。application/x-www-form-urlencoded,也就是默认值,上传文件通常是用 multipart/form-data,现在很多使用 JSON 接口的也用后面这种。text/plain

补充

jQuery et ajax application/json application/json 要

  1. contentType : "application/json;charset=UTF-8"

  2. processData : faux

  3. données : stringify(aObject)

比如

$.ajax("https://blablabla.com/", {
    contentType: "application/json;charset=UTF-8",
    dataType: "json",
    type: "post",
    processData: false,
    data: JSON.stringify({
        user: {
            name: "hello",
            pass: "world"
        },
        stamp: new Date()
    })
});

过去多啦不再A梦

Format de données utilisé

滿天的星座

Pour faire simple, les données que vous demandez sont traitées comme du type xxx.
En conséquence, dataType doit traiter les données renvoyées par le serveur comme type xxx.

黄舟

Les données transmises en http sont toutes des chaînes, mais le serveur analysera les chaînes de différentes manières en fonction du contentType lors de la réception des données. Les objets ne peuvent exister qu'en mémoire, pas seulement en http, toutes les données transmises sur le réseau sont basées sur des chaînes.

Peter_Zhu

Tout d'abord, je ne pense pas qu'il y ait un problème avec votre capture de paquets. Si vous utilisez effectivement une requête POST,
D'après la capture de paquets, il semble qu'il s'agisse d'une requête GET, car POST ne sérialise pas la requête. paramètres

Parlons de ce que signifie contentType ?

Le contentType d'ajax est l'ensemble d'en-tête de requête HTTP. Le but de cet en-tête est d'indiquer au serveur quel est le format de données de mes paramètres de requête. Vous devez les traiter selon le format correspondant, c'est tout.
La valeur par défaut est "application/x-www-form-urlencoded; charset=UTF-8", qui est le format de soumission de formulaire ordinaire. Bien sûr, vous pouvez également le remplacer, comme "application/json", de sorte que. le serveur peut l'obtenir directement dans un paramètre de requête json. Au lieu des valeurs clés une par une

伊谢尔伦

Cela modifie simplement le contentType dans l'en-tête de la requête et n'a rien à voir avec le contenu de la réponse du serveur que vous recevez.

Vous pouvez ajouter ceci pour obtenir les données au format json.

dataType:"json"
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!