J'ai suivi le tutoriel comme indiqué dans le lien [this][1]. 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 place directement dans l'url en utilisant /?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");
}
});
Je vous recommande d'utiliser la syntaxe [$.post
][1] ou [$.get
][2] de jQuery pour les cas simples :
$.post('superman', { field1: "hello", field2 : "hello2"},
function(returnedData){
console.log(returnedData);
});
Si vous avez besoin d'attraper les cas d'échec, faites simplement ceci :
$.post('superman', { field1: "hello", field2 : "hello2"},
function(returnedData){
console.log(returnedData);
}).fail(function(){
console.log("error");
});
En outre, si vous envoyez toujours une chaîne JSON, vous pouvez utiliser [$.getJSON][3] ou $.post avec un paramètre supplémentaire à la toute fin.
$.post('superman', { field1: "hello", field2 : "hello2"},
function(returnedData){
console.log(returnedData);
}, 'json');
[1] : http://api.jquery.com/jQuery.post/ [2] : http://api.jquery.com/jQuery.get/ [3] : http://api.jquery.com/jQuery.getJSON/#urldatacallback
Essayez d'utiliser la méthode GET,
var request = $.ajax({
url: 'url',
type: 'GET',
data: { field1: "hello", field2 : "hello2"} ,
contentType: 'application/json; charset=utf-8'
});
request.done(function(data) {
// your success code here
});
request.fail(function(jqXHR, textStatus) {
// your failure code here
});
Vous ne pouvez pas voir les paramètres dans l'URL avec la méthode POST.
Modifier :
Note de dépréciation: Les callbacks jqXHR.success(), jqXHR.error(), et jqXHR.complete() sont supprimés à partir de jQuery 3.0. Vous pouvez utiliser jqXHR.done(), jqXHR.fail(), et jqXHR.always() à la place.
Dans une [demande POST][1], les paramètres sont envoyés dans le corps de la demande, c’est pourquoi vous ne les voyez pas dans l’URL.
Si vous voulez les voir, changez
type: 'POST',
en
type: 'GET',
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, il se trouve dans le panneau "Network" ;.