Tengo la siguiente función de devolución de llamada de Jquery y tengo algunas dudas al respecto (no sé muy bien Jquery):
$("form.readXmlForm").submit(function() {
// Riferimento all'elemento form che ha scatenato il submit
var form = $(this);
// Variabile che contiene il riferimento al bottone clickato
var button = form.children(":first");
$.ajax({ // Viene eseguita la chiamata AJAX
type: "POST", // Tipo di richiesta: POST
// URL verso quale viene inviata la richiesta
url: form.attr("action"),
// Dati XML inviati:
data: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><javaBean><foo>bar</foo><fruit>apple</fruit></javaBean>",
// Tipo di media type accettabile dalla response:
contentType: "application/xml",
dataType: "text",
success: function(text) {
MvcUtil.showSuccessResponse(text, button);
},
error: function(xhr) {
MvcUtil.showErrorResponse(xhr.responseText, button);
}
});
Como puede ver, esta función simplemente ejecuta una solicitud AJAX en el backend configurando el parámetro para esta solicitud.
He establecido que estoy enviando la solicitud hacia una URL, que la solicitud es una solicitud POST y que los datos que estoy enviando son la siguiente cadena:
"barapple"
Tengo algunas dificultades para entender cuáles son las diferencias entre contentType y dataType
Creo que contentType especifica el tipo de datos que son aceptables recibidos en la respuesta HTTP, ¿es correcto?
¿Y dataType? ¿Que dice? ¿El tipo de datos que envío en la solicitud HTTP?
En este caso, ¿es "texto" porque estoy enviando una cadena de texto que representa el código XML?
fuente
Respuestas:
De la documentación :
y:
Son esencialmente lo contrario de lo que pensabas que eran.
fuente
contentType
afecta a los encabezados,dataType
noEn inglés:
ContentType
: Cuando envíe datos al servidor, use este tipo de contenido. El valor predeterminado esapplication/x-www-form-urlencoded; charset=UTF-8
, lo cual está bien para la mayoría de los casos.Accepts
: El tipo de contenido enviado en el encabezado de la solicitud que le dice al servidor qué tipo de respuesta aceptará a cambio. DependeDataType
.DataType
: El tipo de datos que espera del servidor. Si no se especifica ninguno, jQuery intentará inferirlo en función del tipo MIME de la respuesta. Puede sertext, xml, html, script, json, jsonp
.fuente