javascript - example - jquery ajax get
Diferencias entre contentType y dataType en la funciĆ³n jQuery ajax (2)
De la documentation :
contentType (predeterminado: ''application / x-www-form-urlencoded; charset = UTF-8'')
Tipo: Cadena
Cuando envíe datos al servidor, use este tipo de contenido. El valor predeterminado es "application / x-www-form-urlencoded; charset = UTF-8", que está bien para la mayoría de los casos. Si transfiere explícitamente un tipo de contenido a $ .ajax (), siempre se enviará al servidor (incluso si no se envía ningún dato). Si no se especifica ningún juego de caracteres, los datos se transmitirán al servidor utilizando el conjunto de caracteres predeterminado del servidor; debe decodificar esto apropiadamente en el lado del servidor.
y:
dataType (valor predeterminado: Intelligent Guess (xml, json, script o html))
Tipo: Cadena
El tipo de datos que espera del servidor. Si no se especifica ninguno, jQuery intentará inferirlo basándose en el tipo MIME de la respuesta (un tipo MIME XML arrojará XML, en 1.4 JSON arrojará un objeto JavaScript, en 1.4 script ejecutará el script, y cualquier otra cosa será devuelto como una cadena).
Son esencialmente lo opuesto a lo que pensabas que eran.
Tengo la siguiente función de devolución de llamada de Jquery y tengo pocas 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 ejecute una solicitud AJAX al backend configurando el parámetro para esta solicitud.
He establecido que estoy enviando la solicitud a una URL, que la solicitud es una solicitud POST y que los datos que envío 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 HTTP Response, ¿es correcto?
¿Y dataType? ¿Que dice? ¿El tipo de datos que estoy enviando en la solicitud HTTP?
En este caso, ¿es "texto" porque estoy enviando una cadena textual que rappresent código XML?
En 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
application/x-www-form-urlencoded; charset=UTF-8
, que está bien para la mayoría de los casos. -
Accepts
: El tipo de contenido enviado en el encabezado de la solicitud le dice al servidor qué tipo de respuesta aceptará a cambio. Depende deDataType
. - Tipo de datos: 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 ser
text, xml, html, script, json, jsonp
.