我在jqGrid中使用 inline_editing 中的 saveRow 函数,默认的Content-Type是“ application / x-www-form-urlencoded; charset = UTF-8 “以下
saveparameters = { "successfunc" : null, "url" : myUrl, "extraparam" : {}, "aftersavefunc" : null, "errorfunc": null, "afterrestorefunc" : null, "restoreAfterError" : true, "mtype" : "POST" } jQuery("#grid_id").jqGrid('saveRow',rowid, saveparameters);
我想将Content-Type覆盖为“ application / json; charset = utf-8 ”,因此我可以将successfunc覆盖为
successfunc : function(response){ //parse the json response }
这可能吗?如何覆盖它?感谢
答案 0 :(得分:0)
不,遗憾的是网格不允许您在此jQuery.ajax
的特定调用中指定contentType
选项 - 您可以在grid.inlinedit.js
的源代码中自行查看。因此,它使用您在问题中记下的默认内容类型。
但也许没关系。看起来你真正想要的是接收JSON数据,在这种情况下,发送到服务器的数据格式无关紧要。响应格式由dataType
选项控制,该选项也无法在jqGrid API中指定。但是,它是根据服务器响应中的MIME类型推断的:
默认值:智能猜测(xml,json,脚本或html) 您期望从服务器返回的数据类型。如果没有指定,jQuery将尝试根据响应的MIME类型推断它(XML MIME类型将产生XML,在1.4 JSON中将产生一个JavaScript对象,在1.4脚本中将执行脚本,其他任何东西将是以字符串形式返回)。可用的类型(以及作为成功回调的第一个参数传递的结果)是:
因此,请确保在对application/json; charset=utf-8
的回复中设置MIME类型,您应该做得很好。