Mam następującą funkcję zwrotną Jquery i mam co do niej niewielkie wątpliwości (nie znam za dobrze 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);
}
});
Jak widać, ta funkcja po prostu wykonuje żądanie AJAX do zaplecza, ustawiając parametr dla tego żądania.
Ustawiłem, że wysyłam żądanie pod adres URL, że żądanie jest żądaniem POST, a dane, które wysyłam, to następujący ciąg:
„barapple”
Mam pewne trudności ze zrozumieniem różnic między contentType i dataType
Myślę, że contentType określa typ danych, które są akceptowane w odpowiedzi HTTP, czy to prawda?
A typ danych? Co powiedzieć? Typ danych, które wysyłam w żądaniu HTTP?
W tym przypadku jest to „tekst”, ponieważ wysyłam ciąg tekstowy, który przedstawia kod XML?
javascript
ajax
jquery
AndreaNobili
źródło
źródło
Odpowiedzi:
Z dokumentacji :
i:
Zasadniczo są przeciwieństwem tego, czym myślałeś, że są.
źródło
contentType
Wpływa również na nagłówki,dataType
niePo angielsku:
ContentType
: Wysyłając dane na serwer, użyj tego typu zawartości. Domyślnieapplication/x-www-form-urlencoded; charset=UTF-8
, co jest w porządku w większości przypadków.Accepts
: Typ treści wysyłany w nagłówku żądania, który informuje serwer, jaki rodzaj odpowiedzi przyjmie w zamian. Zależy odDataType
.DataType
: Typ danych, których oczekujesz z powrotem z serwera. Jeśli nic nie zostanie określone, jQuery spróbuje to wywnioskować na podstawie typu MIME odpowiedzi. Może byćtext, xml, html, script, json, jsonp
.źródło