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
参考:jQuery.ajax() ici
一般是用我平时见得不多。
补充application/x-www-form-urlencoded
,也就是默认值,上传文件通常是用multipart/form-data
,现在很多使用 JSON 接口的也用后面这种。text/plain
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.
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.