contentType
é o tipo de dados que você está enviando, então application/json; charset=utf-8
é comum, como é application/x-www-form-urlencoded; charset=UTF-8
, o padrão.
dataType
é o que você está esperando de volta do servidor: json
, html
, text
, etc. jQuery vai usar isso para descobrir como preencher parâmetros da função sucesso.
Se você estiver postando algo como:
{"name":"John Doe"}
e esperando de volta:
{"success":true}
Então você deve ter:
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
},
});
Se você está esperando o seguinte:
<div>SUCCESS!!!</div>
Então você deve fazer:
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
},
});
Mais um - se você quiser postar:
name=John&age=34
Então não faça stringify
os dados e faça:
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", ...
vez de$.ajax({ datatype : "html",...
So capital T na palavra Type é importante. Verifique a API do jQueryrequestContentType
eresponseDataType
, mas, na realidade, uma vez que você já fez isso algumas vezes, e você compreender a API, você não vai ser confundido o suficiente para fazer a digitação adicional vale a pena.Na documentação do jQuery - http://api.jquery.com/jQuery.ajax/
Então você quer que contentType seja
application/json
e dataType sejatext
:fonte
Veja http://api.jquery.com/jQuery.ajax/ , há menção de tipo de dados e contentType lá.
Ambos são usados na solicitação ao servidor para que o servidor saiba que tipo de dados receber / enviar.
fonte