Ответ 1
contentType
- тип данных, которые вы отправляете, поэтому application/json; charset=utf-8
является общим, а application/x-www-form-urlencoded; charset=UTF-8
- по умолчанию.
dataType
- это то, что вы ожидаете от сервера: json
, html
, text
и т.д. jQuery будет использовать это, чтобы выяснить, как заполнить параметр функции успеха.
Если вы публикуете что-то вроде:
{"name":"John Doe"}
и ожидая назад:
{"success":true}
Затем вы должны иметь:
var data = {"name":"John Doe"}
$.ajax({
dataType : "json",
contentType: "application/json; charset=utf-8",
data : JSON.stringify(data),
success : function(result) {
alert(result.success); // result is an object which is created from the returned JSON
},
});
Если вы ожидаете следующего:
<div>SUCCESS!!!</div>
Тогда вы должны сделать:
var data = {"name":"John Doe"}
$.ajax({
dataType : "html",
contentType: "application/json; charset=utf-8",
data : JSON.stringify(data),
success : function(result) {
jQuery("#someContainer").html(result); // result is the HTML text
},
});
Еще один - если вы хотите опубликовать сообщение:
name=John&age=34
Тогда не stringify
данные, а do:
var data = {"name":"John", "age": 34}
$.ajax({
dataType : "html",
contentType: "application/x-www-form-urlencoded; charset=UTF-8", // this is the default value, so it optional
data : data,
success : function(result) {
jQuery("#someContainer").html(result); // result is the HTML text
},
});