Warum schlägt die Rückkehr von Content
im MVC manchmal beim Ajax-Callback fehl, während JSON auch bei einfachen String-Objekten funktioniert?
Auch wenn es fehlschlägt, sind die Daten immer noch verfügbar, wenn Sie im Callback immer darauf zugreifen wollten ...
Wenn ich den contentType im Ajax-Aufruf auf text/xml
setze, gibt die Antwort die Fehlermeldung nicht mehr ein.
Auch wenn es fehlschlägt, sind die Daten immer noch verfügbar.
%Vor% Die Verwendung von Content(Foo);
sendet eine Antwort, die nicht den Header des MIME-Typs enthält. Dies geschieht, weil Sie ContentType
nicht festlegen, wenn Sie diese Überladung verwenden. Wenn der Inhaltstyp nicht festgelegt ist, versucht jQuery, den Inhaltstyp zu erraten . Ob dies erfolgreich ist oder nicht, hängt vom tatsächlichen Inhalt und dem zugrundeliegenden Browser ab. Siehe hier :
dataType (Standard: Intelligentes Raten (xml, json, script oder html))
Json(...)
andererseits explizit setzt den Inhaltstyp auf "application/json"
, sodass jQuery genau weiß, wie der Inhalt behandelt werden soll.
Sie können konsistente Ergebnisse von Content
erhalten, wenn Sie die 2nd überladen Sie und geben Sie einen ContentType an:
Wenn Sie jedoch immer mit JSON arbeiten, verwenden Sie lieber JsonResult
Tags und Links asp.net-mvc c# jquery ajax json