Различия между contentType и dataType в jQuery ajax function
У меня есть следующая функция обратного вызова JQuery, и у меня есть сомнения по поводу этого (я не очень хорошо знаю 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);
}
});
Как вы можете видеть эту функцию, просто выполните запрос AJAX на серверную настройку параметра для этого запроса.
Я установил, что я отправляю запрос по URL-адресу, что запрос является POST-запросом и что данные, которые я отправляю, являются следующей строкой:
"barapple"
У меня есть некоторые трудности, чтобы понять, каковы различия между contentType и dataType
Я думаю, что contentType указывает тип данных, приемлемых для HTTP-ответа, правильно?
И dataType? Что сказать? Тип данных, которые я отправляю в HTTP-запросе?
В этом случае это "текст", потому что я отправляю текстовую строку, которая содержит XML-код?
Ответы
Ответ 1
Из документации:
contentType (по умолчанию: 'application/x-www-form-urlencoded; charset = UTF-8')
Тип: Строка
При отправке данных на сервер используйте этот тип содержимого. По умолчанию используется "application/x-www-form-urlencoded; charset = UTF-8", что отлично подходит для большинства случаев. Если вы явно передаете контент-тип в $.ajax(), он всегда будет отправляться на сервер (даже если данные не отправляются). Если кодировка не указана, данные будут переданы на сервер с использованием кодировки сервера по умолчанию; вы должны соответствующим образом декодировать его на стороне сервера.
и
dataType (по умолчанию: Intelligent Guess (xml, json, script или html))
Тип: Строка
Тип данных, которые вы ожидаете от сервера. Если ни один не указан, jQuery попытается вывести его на основе типа ответа MIME (тип XML MIME даст XML, в 1.4 JSON будет создан объект JavaScript, в 1.4 script будет выполняться script и все остальное будет возвращено как строка).
Они, по сути, противоположны тому, что вы считали.
Ответ 2
![введите описание изображения здесь]()
На английском языке:
-
ContentType
: при отправке данных на сервер используйте этот тип содержимого. По умолчанию используется application/x-www-form-urlencoded; charset=UTF-8
, что отлично подходит для большинства случаев.
-
Accepts
: тип контента, отправленный в заголовке запроса, который сообщает серверу, какой ответ он примет в ответ. Зависит от DataType
.
-
DataType
: тип данных, которые вы ожидаете от сервера. Если ни один не указан, jQuery попытается вывести его на основе MIME-типа ответа. Может быть text, xml, html, script, json, jsonp
.