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
данных и делайте:
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's optional
data : data,
success : function(result) {
jQuery("#someContainer").html(result); // result is the HTML text
},
});
[HttpPost]public JsonResult user(Person postedPerson) { /* Save postedPerson to DB */ return Json(new { success = true }); }
$.ajax({ dataType : "html", ...
вместо$.ajax({ datatype : "html",...
Так что заглавная T в слове Type важна. Проверьте jQuery APIrequestContentType
иresponseDataType
, но на самом деле, как только вы сделали это несколько раз, и вы понимаете API, вы не будете путать достаточно , чтобы сделать дополнительный набор текста стоит.Из документации по jQuery - http://api.jquery.com/jQuery.ajax/
Итак, вы хотите, чтобы contentType был,
application/json
а dataType былtext
:источник
См. Http://api.jquery.com/jQuery.ajax/ , там есть упоминание о типе данных и типе контента.
Они оба используются в запросе к серверу, поэтому сервер знает, какие данные получать / отправлять.
источник