enviar - jquery ajax json example
Jquery JQGrid se rompe cuando contentType=application/json? (2)
Cuando está configurando jqGrid o su fuente de datos, configure su dataType
en JSON ( "json"
), como este:
$("#myTable").jqGrid ({
//other options...
dataType : ''json''
});
Tuve que usar $ .ajaxSetup () para cambiar globalmente el contentType a application / json
$.ajaxSetup({
contentType: "application/json; charset=utf-8"
});
(Consulte esta pregunta para saber por qué tuve que usar la aplicación / json ASPNET MVC - ¿Por qué es ModelState.IsValid falso "El campo x es obligatorio" cuando ese campo tiene un valor? )
Pero esto rompe el jquery jqrid con este error:
Invalid JSON primitive: _search
Los datos POST que intenta enviar son:
_search=false&nd=1274042681880&rows=20&page=1&sidx=&sord=asc
Lo que no está en formato json, por lo que, por supuesto, falla. ¿Hay alguna forma de decirle a jqrid qué tipo de contenido usar?
He buscado en la wiki de jqrid, pero no tengo mucha documentación sobre nada realmente.
http://www.trirand.com/jqgridwiki/doku.php?do=search&id=contenttype&fulltext=Search
En primer lugar, puedo enviarte la respuesta anterior. Configurar el tipo de contenido de las solicitudes realizadas por jQuery jqGrid . Muestra cómo se ve la solicitud de Ajax dentro de jqGrid. Por lo tanto, debe utilizar el parámetro ajaxGridOptions
de jqGrid en lugar de sobrescribir la configuración global con respecto a $.ajaxSetup
.
Además, en la misma respuesta puede ver cómo serializeGridData
parámetro GridData de jqGrid se puede usar para hacer su serialización personalizada. ¿Cómo construyo un objeto JSON para enviar a un WebService de AJAX? puede leer cómo debería ser la codificación JSON de parámetros.
Si tiene problemas para utilizar serializeGridData
y ajaxGridOptions
, debe incluir en su pregunta el fragmento de código de uso de jqGrid y el prototipo del método del servidor del servicio web que utiliza.