jquery JQGrid在contentType = application / json时中断了吗?

我不得不使用$ .ajaxSetup()来将contentType全局更改为application / json

$.ajaxSetup({
  contentType: "application/json; charset=utf-8"
});

(请参阅这个问题,为什么我必须使用application / json ASPNET MVC - 为什么ModelState.IsValid为false当字段确实有值时,需要x字段?)

但是这打破了jQuery的jqrid这个错误:

Invalid JSON primitive: _search

它试图发送的POST数据是:

_search=false&nd=1274042681880&rows=20&page=1&sidx=&sord=asc

哪些不是json格式,当然它失败了。 无论如何告诉jqrid使用什么内容类型?

我已经在jqrid wiki上搜索过,但没有太多有关任何文档的文档。

http://www.trirand.com/jqgridwiki/doku.php?do=search&id=contenttype&fulltext=Search


首先我可以转发你我的旧答案设置由jQuery jqGrid执行的请求的内容类型。 它显示了jqGrid中ajax请求的外观。 所以你应该使用ajaxGridOptions参数,而不是覆盖$.ajaxSetup方面的全局设置。

而且在相同的答案中,你可以看到你如何使用jqGrid的serializeGridData参数来进行自定义序列化。 在我如何构建一个JSON对象以发送到AJAX WebService? 你可以阅读参数的JSON编码应该如何。

如果您在使用serializeGridDataajaxGridOptions遇到问题, ajaxGridOptions您应该在您的问题中包含使用jqGrid的代码片段以及您使用的Web服务的服务器方法的原型。


当你设置jqGrid或它的数据源时,将它的dataType设置为JSON( "json" ),如下所示:

$("#myTable").jqGrid ({
  //other options...
  dataType : 'json'
});

你也可以在代码项目上看到一个例子。

链接地址: http://www.djcxy.com/p/46171.html

上一篇: Jquery JQGrid breaks when contentType=application/json?

下一篇: Can I return JSON from an .asmx Web Service if the ContentType is not JSON?