Sto usando l'ultima versione di jqGrid: 3.6.4Impostazione del tipo di contenuto delle richieste effettuate da jQuery jqGrid
Questo mi sembra un semplice problema (o almeno lo ha fatto prima che ho trascorso un paio d'ore su di esso):
Quando la griglia invia una richiesta al server (ad un'azione di controllo), il suo tipo di contenuto è sempre:
application/x-www-form-urlencoded; charset=UTF-8
e vorrei che fosse:
application/json; charset=utf-8
ma non riesco a trovare il modo di impostare il tipo di contenuto (non esiste un'opzione contentType come si troverà su una chiamata $ .ajax per esempio).
Quindi, per chiarire, non sto chiedendo come impostare il tipo di contenuto su una richiesta del server jQuery, ma in particolare utilizzando jqGrid, che non fornisce un'opzione ovvia per farlo.
Grazie, Nigel.
Aggiornamento: La risposta di Oleg risolto risolto.
Qui ci sono le impostazioni delle opzioni per la griglia:
jQuery("#ContactGridList").jqGrid({
url: '/ContactSelect/GridData/',
datatype: 'json',
ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
mtype: 'POST',
...
Grazie Oleg!Questo lo ha fatto; Ho aggiunto il mio codice di esempio alla domanda. – Nigel
Molto strano! Io uso anche jqGrid 3.6.4. Perché uso jQuery 1.4.2 Devo usare la versione da http://github.com/tonytomov/jqGrid, ma le funzionalità di ajax esistono a partire da 3.6 (3.6.0). Puoi cercare ajaxGridOptions nella tua versione di jqGrid per verificarlo. Suggerisco di caricare l'ultima versione non compressa di jqGrid da http://github.com/tonytomov/jqGrid, modificare il codice per utilizzare questo js-file (ad esempio grid.loader.js), impostare i breakpoint all'interno di grid.base.js (cerca .ajax) e all'interno di jQuery.ajax (anche jQuery-1.4.2.js non compresso). Puoi anche fare un test con l'impostazione $ .jgrid.defaults. – Oleg
Congratulazioni !!! Un buon problema è un problema risolto! – Oleg