J'ai la fonction de rappel Jquery suivante et j'ai un petit doute à ce sujet (je ne connais pas très 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);
}
});
Comme vous pouvez le voir, cette fonction exécute simplement une requête AJAX au backend en définissant le paramètre de cette requête.
J'ai défini que j'envoie la demande vers une URL, que la demande est une demande POST et que les données que j'envoie sont la chaîne suivante:
"barapple"
J'ai quelques difficultés à comprendre quelles sont les différences entre contentType et dataType
Je pense que contentType spécifie le type de données acceptables reçues dans la réponse HTTP, n'est-ce pas?
Et dataType? Que dire? Le type de données que j'envoie dans la requête HTTP?
Dans ce cas, est-ce que c'est "texte" parce que j'envoie une chaîne textuelle qui représente le code XML?
la source
Réponses:
De la documentation :
et:
Ils sont essentiellement le contraire de ce que vous pensiez qu'ils étaient.
la source
contentType
Affecte également les en-têtes,dataType
ne le fait pasEn anglais:
ContentType
: Lors de l'envoi de données au serveur, utilisez ce type de contenu. La valeur par défaut estapplication/x-www-form-urlencoded; charset=UTF-8
, ce qui convient dans la plupart des cas.Accepts
: Le type de contenu envoyé dans l'en-tête de la requête qui indique au serveur quel type de réponse il acceptera en retour. Cela dépendDataType
.DataType
: Le type de données que vous attendez du serveur. Si aucun n'est spécifié, jQuery essaiera de l'inférer en fonction du type MIME de la réponse. Peut êtretext, xml, html, script, json, jsonp
.la source