contentType
est le type de données que vous envoyez, donc application/json; charset=utf-8
est courant, tout comme application/x-www-form-urlencoded; charset=UTF-8
, qui est la valeur par défaut.
dataType
est ce que vous attendez en retour du serveur : json
, html
, text
, etc. jQuery l'utilisera pour déterminer comment remplir le paramètre de la fonction de succès.
Si vous envoyez quelque chose comme :
{"name":"John Doe"}
et attendez en retour :
{"success":true}
Alors vous devriez avoir :
var data = {"name":"John Doe"}
$.ajax({
dataType : "json",
contentType: "application/json; charset=utf-8",
data : JSON.stringify(data),
success : function(result) {
alert(result.success); // result est un objet créé à partir du JSON retourné
},
});
Si vous attendez ce qui suit :
SUCCESS!!!
Alors vous devriez faire :
var data = {"name":"John Doe"}
$.ajax({
dataType : "html",
contentType: "application/json; charset=utf-8",
data : JSON.stringify(data),
success : function(result) {
jQuery("#someContainer").html(result); // result est le texte HTML
},
});
Encore une chose - si vous voulez envoyer :
name=John&age=34
Alors ne stringify
pas les données, et faites :
var data = {"name":"John", "age": 34}
$.ajax({
dataType : "html",
contentType: "application/x-www-form-urlencoded; charset=UTF-8", // c'est la valeur par défaut, donc c'est facultatif
data : data,
success : function(result) {
jQuery("#someContainer").html(result); // result est le texte HTML
},
});