Festlegen des Inhaltstyps von Anforderungen, die von jQuery jqGrid ausgeführt werden
Ich verwende die neueste version von jqGrid: 3.6.4
Dies scheint wie ein einfaches problem (oder es zumindest Tat, bevor ich verbrachte ein paar Stunden auf ihn):
Wenn das Netz sendet eine Anforderung an den server (an eine controller-action), deren content-type ist immer:
application/x-www-form-urlencoded; charset=UTF-8
und ich würde es gerne zu:
application/json; charset=utf-8
aber ich finde keine Möglichkeit, das setzen des content-type (es gibt keine contentType-option, wie Sie finden würde, auf $.ajax-Aufruf zum Beispiel).
Also nur zu klären, ich bin nicht zu Fragen, wie die content-type auf ein jQuery-server-Anfrage, aber insbesondere mit jqGrid, die nicht eine offensichtliche Wahl, dies zu tun.
Dank, Nigel.
Update:
Oleg ' s Antwort fixiert gelöst.
Hier sind die Einstellungen für das raster:
jQuery("#ContactGridList").jqGrid({
url: '/ContactSelect/GridData/',
datatype: 'json',
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
mtype: 'POST',
...
InformationsquelleAutor der Frage Nigel | 2010-04-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie findet man in dem code von grid.base.js die
$.ajax
rufen Sie füllen das raster enthalten, sieht wie folgt aus:So können Sie
ajaxGridOptions
Möglichkeit, jqGrid zu setzen oder überschreiben alle parameter der$.ajax
Anfrage. Da ich nur JSON-requests an meinen server habe ich die generelle Einstellung voncontentType
wieDen
ajaxRowOptions
werden in grid.inlinedit.js für Zeile Bearbeiten. Für das Formular Bearbeiten, es gibt noch andere Parameter, die ich auch als Globale Einstellung:Wie Sie sehen können, mein server ist ein Erholsamen service (entwickelt vor allem in den WFC und den rest in ASP.NET MVC). Da
$.jgrid.edit
ist eine Einstellung, die für beide "hinzufügen" und "ändern" Dingen, die ich nicht ändern konntemtype: "PUT"
für "Bearbeiten" nur, damit ich das in die Parameter dernavGrid()
.Den letzten ajax-parameter, die Sie finden konnte, auch interessant zu legen ist
ajaxSelectOptions
. Sie können legen Sie es auf die gleiche Weise wieajaxGridOptions
. ParameterajaxSelectOptions
sind nützlich, wenn SiedataUrl
parameter innerhalb dereditoptions
odersearchoptions
. Ich benutze zum BeispieldataUrl
innerhalb voncolModel
für die Definition von Spalten vom Typedittype: 'select'
. Die möglichen Werte der option geladen werden, die vom server für die inline-oder die form der Bearbeitung oder im inneren der suchen-dialog. Denn für so das laden von Daten verwendet werden, ajax, gibt es entsprechendeajaxSelectOptions
option.Beste Grüße.
InformationsquelleAutor der Antwort Oleg