1

我在jqGrid的 inline_editing 中使用saveRow函数,默认的 Content-Type 是“ application/x-www-form-urlencoded; charset=UTF-8 ”,如下

保存参数 = {
    “成功函数”:空,
    “网址”:我的网址,
        “额外参数”:{},
    “aftersavefunc”:空,
    “错误函数”:空,
    “afterrestorefunc”:空,
    “restoreAfterError”:是的,
    “mtype”:“POST”
}

jQuery("#grid_id").jqGrid('saveRow',rowid, saveparameters);

我想将 Content-Type 覆盖为“ application/json; charset=utf-8 ”,这样我就可以像

成功函数:函数(响应){
    //解析json响应
}

这可能吗以及如何覆盖它?谢谢

4

1 回答 1

0

不,不幸的是,网格不允许您contentType在此特定调用中指定选项jQuery.ajax- 您可以在源代码中自己查看grid.inlinedit.js. 因此,它使用您在问题中提到的默认内容类型。

但也许没关系。看起来您真正想要的是接收 JSON 数据,在这种情况下,发送到服务器的数据格式无关紧要。响应格式由dataType选项控制,在 jqGrid API 中也无法指定。但是,它是根据服务器响应的 MIME 类型推断出来的:

默认值:智能猜测(xml、json、脚本或 html)您期望从服务器返回的数据类型。如果没有指定,jQuery 将尝试根据响应的 MIME 类型推断它(XML MIME 类型将产生 XML,在 1.4 中 JSON 将产生一个 JavaScript 对象,在 1.4 中脚本将执行脚本,其他任何内容都将是作为字符串返回)。可用的类型(以及作为第一个参数传递给成功回调的结果)是:

所以只要确保你在你的回复中设置了 MIME 类型就application/json; charset=utf-8可以了。

于 2012-09-21T14:13:55.893 回答