contentType
to typ wysyłanych danych, więc application/json; charset=utf-8
jest to typowy typ application/x-www-form-urlencoded; charset=UTF-8
, który jest domyślny.
dataType
jest co czekasz z serwera: json
, html
, text
, itd jQuery użyje tego, aby dowiedzieć się, jak wypełnić Parametr Funkcja powodzenie tych.
Jeśli publikujesz coś takiego:
{"name":"John Doe"}
i oczekując z powrotem:
{"success":true}
Wtedy powinieneś mieć:
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
},
});
Jeśli spodziewasz się następujących rzeczy:
<div>SUCCESS!!!</div>
Następnie powinieneś zrobić:
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
},
});
Jeszcze jedno - jeśli chcesz napisać:
name=John&age=34
Więc nie stringify
danych i zrób:
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", ...
zamiast$.ajax({ datatype : "html",...
więc dużej litery T w słowie Typ jest ważny. Sprawdź interfejs API jQueryrequestContentType
iresponseDataType
, ale w rzeczywistości, kiedyś zrobiłeś go kilka razy, a ty zrozumieć API, nie będzie się mylić wystarczająco, aby dodatkowo wpisując opłaca.Z dokumentacji jQuery - http://api.jquery.com/jQuery.ajax/
Więc chcesz, aby contentType było,
application/json
a dataType byłotext
:źródło
Zobacz http://api.jquery.com/jQuery.ajax/ , tam jest wzmianka o typie danych i typie treści.
Oba są używane w żądaniu do serwera, więc serwer wie, jakie dane ma odebrać / wysłać.
źródło