1

jqGrid のinline_editingでsaveRow関数を使用しています。デフォルトの Content-Type は " application/x-www-form-urlencoded; charset=UTF-8 " で、次のようになります。

パラメータを保存 = {
    "successfunc" : null,
    "url" : myUrl,
        "extraparam": {},
    "aftersavefunc" : null,
    "errorfunc": null,
    「afterrestorefunc」: null,
    「restoreAfterError」: 真、
    "mtype" : "投稿"
}

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

Content-Type を「 application/json; charset=utf-8 」に上書きしたいので、次のような successfunc を持つことができます

successfunc : 関数 (応答) {
    // json レスポンスを解析する
}

これは可能ですか、それを上書きする方法は? ありがとう

4

1 に答える 1

0

contentTypeいいえ、残念ながらグリッドでは、この特定の呼び出しでオプションを指定することはできません。jQuery.ajaxへのソース コードで確認できますgrid.inlinedit.js。したがって、質問で指摘したように、デフォルトのコンテンツ タイプを使用します。

でも、それでいいのかもしれません。本当に必要なのは JSON データを受け取ることのようですが、その場合、サーバーに送信されるデータの形式は問題ではありません。応答の形式は、dataTypeオプションによって制御されます。これも jqGrid API では指定できません。ただし、サーバーの応答からの MIME タイプに基づいて推測されます。

デフォルト: Intelligent Guess (xml、json、script、または html) サーバーから返されると予想されるデータのタイプ。何も指定されていない場合、jQuery は応答の MIME タイプに基づいてそれを推測しようとします (XML MIME タイプは XML を生成し、1.4 では JSON は JavaScript オブジェクトを生成し、1.4 ではスクリプトがスクリプトを実行し、その他はすべて文字列として返されます)。利用可能な型 (および成功のコールバックに最初の引数として渡される結果) は次のとおりです。

したがって、応答で MIME タイプを設定していることを確認してくださいapplication/json; charset=utf-8

于 2012-09-21T14:13:55.893 に答える