3

バックボーンのエラー コールバックmodel.saveは 2 つの引数しか取りませんerror: function(model, response){}。私のアプリケーションでは、楽観的ロックが失敗した場合、409 conflictステータスが設定されます (これは簡単に取得できます)。ただし、サーバーは問題の詳細を示すカスタム エラー メッセージも送信します。

これで、サーバーは更新されたモデル を含む更新された JSON 応答を、問題の内容を示すエラー メッセージと共に送信します。バックボーンがこのエラーを抑制しているようです。jquery のエラー コールバックによると、シグネチャはerror(jqXHR, textStatus, errorThrown). バックボーンが最後の部分を破棄しているように見えるため、サーバーのカスタム応答を手に入れることができないようです。

これは良い習慣ですか?errorThrownパラメータにアクセスできるようにするためだけに、バックボーンの保存機能を複製したくありません。にシームレスにアクセスする方法はありますerrorThrownか? または、サーバーにカスタム応答を送信させず、コードのみを送信させ、クライアントに表示用の応答を作成させる方が良い方法ですか??

4

2 に答える 2

2

バックボーンは、成功とエラーの両方のケースに 2 つのパラメーターを渡します。1 つ目は保存しているモデルで、2 つ目はサーバーからの応答です。応答が JSON の場合は、呼び出してアクセスできます。response.responseJSON

this.model.save(null, {
    success: function(model, response) {
        console.model(response);
    },
    error: function (model, response) {
        console.log(response.responseJSON);
    }
});
于 2016-04-19T19:34:08.760 に答える
0

responseオブジェクトにはプロパティと.responseTextが必要.statusTextです。サーバーが応答を構築する方法によっては、これらのプロパティの1つに、探しているエラーテキストが含まれている場合があります。

于 2012-08-08T18:14:38.537 に答える