2013-08-15 5 views
11

パラメータを入力すると成功/エラー/完了コールバックは発生しませんが、Fiddlerは200応答を表示し、 。 それが鍵です。フィドラーは、往復が成功したことを示しており、要求されたデータはここではクライアント側で良好な順です。問題は、バックボーンの成功/失敗/完了が呼び出されなかったことです。ただ大きなものを手に入れてください。Backbone.jsモデルフェッチ:成功/エラー/完了したコールバックが発生しないようにするパラメータ

まったく同じベースURLを使用して、パラメータを取り出して(パラレルにWebサービスから削除すると)、成功と完了の両方がトリガーされます。以下は私の "with"パラメータの取得です:

myModel.fetch({ 
    data: { 
     name: 'Bob', 
     userid: '1', 
     usertype: 'new' 
    } 
}, { 
    success: (function() { 
     alert(' Service request success: '); 
    }), 
    error: (function (e) { 
     alert(' Service request failure: ' + e); 
    }), 
    complete: (function (e) { 
     alert(' Service request completed '); 
    }) 
}); 

バックボーンの動作はどう違うのですか?パラメータの有無にかかわらず、同じURLです。

私は、バックボーンフェッチのボンネットの下で、 "with"パラメータのシナリオはポストであり、 "without"パラメータはシンプルなgetであるということを推測しています。 IEコンソールはこれをわずかに異なる出力で反映しています。パラメータ「と」

私のIEブラウザのコンソールは、リクエストが必要なことを示す警告(エラーではないが、警告)CORSを報告します。

SEC7118:!http://example.com/service/myservice.asmx/myoperation?name=Bob&userid=1&usertype=new必要なクロスオリジンリソース共有(CORS)のためのXMLHttpRequest。

私はちょうど私に "ねえ、あなたはクロスオリジンのリクエストをして、それを聞かせました"と言っていると思います。パラメータがないと、私はその警告を受け取りません。

アクセス制御は-起源許可:

*とレスポンスは確かにそのポリシーを反映して戻って来るのか、私はに設定されたサービスヘッダを持っています。

なぜ、バックボーンの成功/エラー/完了コールバックがパラメータ付きでトリガされないのですか?データはそれを元に戻します。バックボーンは成功を反映すべきではないか?

+0

'fetch'は単一の引数をとります。 [this](http://backbonejs.org/docs/backbone.html#section-55)を読んでください。 – fbynite

答えて

14

dataと同じオブジェクトにsuccesserror、およびcompleteのメソッドを配置します。単一のオブジェクトのみが存在する必要があります。フックの下では、バックボーンは単にjQuery's ajax() methodを使用するので、fetch()に渡すオブジェクトは、$.ajax()に渡された設定オブジェクトに含まれる可能性のあるプロパティを使用できます。

myModel.fetch({ 
    data: { 
     name: 'Bob', 
     userid: '1', 
     usertype: 'new' 
    }, 
    success: (function() { 
     alert(' Service request success: '); 
    }), 
    error: (function (e) { 
     alert(' Service request failure: ' + e); 
    }), 
    complete: (function (e) { 
     alert(' Service request completed '); 
    }) 
}); 
+0

ビンゴ。どうもありがとう。上記の改訂コード。 – Robert

関連する問題