J'ai suivi le tutoriel comme indiqué dans ce lien. Dans le code ci-dessous, pour une raison quelconque, les données ne sont pas ajoutées à l'url en tant que paramètres, mais si je les définit directement sur l'URL, /?field1="hello"
cela fonctionne.
$.ajax({
url: 'superman',
type: 'POST',
data: { field1: "hello", field2 : "hello2"} ,
contentType: 'application/json; charset=utf-8',
success: function (response) {
alert(response.status);
},
error: function () {
alert("error");
}
});
Réponses:
Je vous recommande d'utiliser la syntaxe
$.post
ou$.get
de jQuery pour des cas simples:Si vous devez détecter les cas d'échec, procédez comme suit:
De plus, si vous envoyez toujours une chaîne JSON, vous pouvez utiliser $ .getJSON ou $ .post avec un paramètre supplémentaire à la toute fin.
la source
field1:
et qu'est-ce que c'est"hello"
? Variables en JS ou PHP?Essayez d'utiliser la méthode GET,
Vous ne pouvez pas voir les paramètres dans l'URL avec la méthode POST.
Éditer:
la source
Jquery.ajax n'encode pas automatiquement les données POST pour vous comme il le fait pour les données GET. Jquery s'attend à ce que vos données soient préformatées pour être ajoutées au corps de la demande pour être envoyées directement sur le câble.
Une solution consiste à utiliser la fonction jQuery.param pour créer une chaîne de requête attendue par la plupart des scripts qui traitent les requêtes POST.
Dans ce cas, la
param
méthode formate les données en:La documentation Jquery.ajax indique qu'il existe un indicateur appelé
processData
qui contrôle si cet encodage est effectué automatiquement ou non. La documentation indique qu'il est par défauttrue
, mais ce n'est pas le comportement que j'observe quandPOST
est utilisé.la source
la source
Dans une requête POST , les paramètres sont envoyés dans le corps de la requête, c'est pourquoi vous ne les voyez pas dans l'URL.
Si vous voulez les voir, changez
à
Notez que les navigateurs ont des outils de développement qui vous permettent de voir les requêtes complètes que votre code émet. Dans Chrome, c'est dans le panneau "Réseau".
la source
type: 'POST'
, ajoutera ** des paramètres au corps de la requête ** qui ne sont pas visibles dans l' URL tandis quetype: 'GET'
, ajoute des paramètres à l'URL qui est visible .La plupart des navigateurs Web populaires contiennent des panneaux réseau qui affichent la demande complète .
Dans le panneau réseau, sélectionnez XHR pour voir les demandes .
Cela peut également être fait via ceci.
la source
Vous pouvez le faire en utilisant $ .ajax ou $ .post
En utilisant $ .ajax:
Utilisation de $ .post:
la source
Votre code était correct sauf que vous ne transmettez pas les clés JSON sous forme de chaînes.
Il doit être entouré de guillemets doubles ou simples
la source
Pour envoyer les paramètres dans l'url dans la
POST
méthode, vous pouvez simplement l'ajouter à l'url comme ceci:la source