【问题标题】:Overwrite default Content-Type when using saveparameters in jqGrid在 jqGrid 中使用保存参数时覆盖默认的 Content-Type
【发布时间】:2023-03-27 00:32:01
【问题描述】:

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

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

【问题讨论】:

    标签: jquery jqgrid


    【解决方案1】:

    不,不幸的是,网格不允许您在对 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 类型就可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 2016-02-05
      相关资源
      最近更新 更多