contentType
est le type de données que vous envoyez, c'est donc application/json; charset=utf-8
une donnée courante, telle application/x-www-form-urlencoded; charset=UTF-8
quelle, qui est la valeur par défaut.
dataType
est ce que vous vous attendez à partir du serveur: json
, html
, text
, etc. jQuery utiliser pour savoir comment remplir le paramètre de la fonction de réussite.
Si vous publiez quelque chose comme:
{"name":"John Doe"}
et en attendant de revenir:
{"success":true}
Ensuite, vous devriez avoir:
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
},
});
Si vous vous attendez à ce qui suit:
<div>SUCCESS!!!</div>
Alors tu devrais faire:
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
},
});
Encore un - si vous souhaitez publier:
name=John&age=34
Alors ne prenez pas stringify
les données et faites:
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", ...
place de$.ajax({ datatype : "html",...
Donc T majuscule dans le mot Type est important. Vérifiez jQuery APIrequestContentType
etresponseDataType
, mais vous ne serez pas assez confus dans la réalité, une fois que vous avez fait une ou deux fois, et vous comprenez l'API, pour faire la saisie supplémentaire utile.De la documentation jQuery - http://api.jquery.com/jQuery.ajax/
Vous voulez donc que contentType soit
application/json
et dataType soittext
:la source
Voir http://api.jquery.com/jQuery.ajax/ , il y a mention du type de données et contentType.
Ils sont tous deux utilisés dans la demande au serveur afin que le serveur sache quel type de données recevoir / envoyer.
la source