0

少し奇妙なことに、最初にWebサービス呼び出しが呼び出されましたが、2回目以降はこの奇妙なエラーが発生します。

this.save(requestObject, {
    success: function (response) {
        callback(response.toJSON());
    },

    error: function (res, result, xhr) {

    }
});

初めてコールバックを取得したとき、なぜ2回目からコールバックが失敗するのですか?以下はエラーログです。

HTTP Error (org.apache.http.client.HttpResponseException): 596
    [ERROR][TiHttpClient(  478)] org.apache.http.client.HttpResponseException: 596
    [ERROR][TiHttpClient(  478)]    at ti.modules.titanium.network.TiHTTPClient$LocalResponseHandler.handleResponse(TiHTTPClient.java:240)
    [ERROR][TiHttpClient(  478)]    at ti.modules.titanium.network.TiHTTPClient$LocalResponseHandler.handleResponse(TiHTTPClient.java:199)
    [ERROR][TiHttpClient(  478)]    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:657)
    [ERROR][TiHttpClient(  478)]    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:637)
    [ERROR][TiHttpClient(  478)]    at ti.modules.titanium.network.TiHTTPClient$ClientRunnable.run(TiHTTPClient.java:1217)
    [ERROR][TiHttpClient(  478)]    at java.lang.Thread.run(Thread.java:1020)
    [ERROR][V8Exception(  478)] Exception occurred at undefined:1: Uncaught SyntaxError: Unexpected token <
4

2 に答える 2

1

を初めて実行するときsave、クライアントはサーバーに何を送り返しますか?POSTリクエストまたはPUTリクエスト?2回目は、クライアントの要求が変更されますか、それとも同じですか?

これは、問題の特定に役立つ場合があります。バックボーンメソッドは、要求のタイプを決定するメソッドにsave委任します。Backbone.syncたとえば、isNew()modelメソッドを使用しsyncて、モデルが新しい場合はPOST(新しいモデルをサーバーに保存する必要があるため)要求を作成し、モデルが既に存在する場合はPUT要求(モデル更新)を作成します。syncこの方法の詳細については、バックボーンのメインページで確認できます。

サーバーから取得しているエラーは、この要求の1つに応答する方法がわからないために発生している可能性があります。それをチェックする価値があるかもしれません。

于 2013-02-27T12:27:23.823 に答える
0

backbone.jsのドキュメントによると

If the model isNew, the save will be a "create" (HTTP POST), if the model already exists on the server, the save will be an "update" (HTTP PUT).

したがって、基本的に最初のリクエストはPOSTリクエストになり、その後の他のすべてのリクエストはPUTリクエストになります。サーバー側スクリプトにはPUTリクエストを処理するように設定されているように見えるので、おそらく次のようにemulateHTTP設定を使用することをお勧めします。

Backbone.emulateHTTP = true
于 2013-02-28T01:26:02.710 に答える