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编码应该如何。
如果您在使用serializeGridData
和ajaxGridOptions
遇到问题, 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?