在jqGrid中使用saveparameters时覆盖默认的Content-Type

时间:2012-09-21 09:45:55

标签: jquery jqgrid

我在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
}

这可能吗?如何覆盖它?感谢

1 个答案:

答案 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类型,您应该做得很好。