contentType
es el tipo de datos que está enviando, por lo que application/json; charset=utf-8
es uno común, como es application/x-www-form-urlencoded; charset=UTF-8
, que es el predeterminado.
dataType
es lo que está esperando de vuelta desde el servidor: json
, html
, text
, etc jQuery usar esto para averiguar cómo rellenar los parámetros de la función de éxito.
Si publicas algo como:
{"name":"John Doe"}
y esperando volver:
{"success":true}
Entonces deberías tener:
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 is an object which is created from the returned JSON
},
});
Si espera lo siguiente:
<div>SUCCESS!!!</div>
Entonces deberías hacer:
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 is the HTML text
},
});
Uno más, si quieres publicar:
name=John&age=34
Entonces no stringify
los datos, y hacer:
var data = {"name":"John", "age": 34}
$.ajax({
dataType : "html",
contentType: "application/x-www-form-urlencoded; charset=UTF-8", // this is the default value, so it's optional
data : data,
success : function(result) {
jQuery("#someContainer").html(result); // result is the HTML text
},
});