3

Node.js/Restify バックエンドを備えた HTML5 のシンプルな Backbone.js/Bootstrap フロント エンドがあります。以下のように、サーバーからのヘッダー応答で Cookie を設定しています。

res.setHeader("Set-Cookie", ["token=ninja", "language=javascript"]);

クライアント側では、次のように REST 呼び出しを行っています。

var response = this.model.fetch().success(function(data){
           //success
           }).error(function(data){
           //error 
           }).complete(function(data){
            //complete
           });

モデル内の parse メソッドをコールバックします。

モデルで Cookie の値を読み取るにはどうすればよいですか?

4

3 に答える 3

1

Cookie.jsを含めます

次に、次のように個々の Cookie を参照できます。

var token = Cookie.get('token')

# token == 'ninja'
于 2012-05-23T01:11:22.647 に答える
1

これが私が理解したものです。私のアプリケーションには 2 つのコンポーネントがあります。1 つのドメインの HTML/js が、別のドメインの REST サービスと通信します (したがって、クロスドメインです)。Cookie は REST から設定されるため、ドメイン間で読み取ることはできません。そのため、サーバーが Cookie を送信していても、Web ページは Cookie を保存しません。代替手段の 1 つは、ローカル Cookie を使用するか、http://backbonetutorials.com/cross-domain-sessions/で説明されている手法を使用することです。

于 2012-05-24T15:35:08.433 に答える
0

Backbone で jQuery を使用していると仮定すると、 orparseを呼び出してモデルで関数を定義することにより、ヘッダーを取得できます。getAllResponseHeadersgetResponseHeader

var model = Backbone.Model.extend({

    // the rest of your model

    parse: function(resp, xhr) {
        var allHeaders = xhr. getAllResponseHeaders();
        var cookieHeader = xhr. getResponseHeader("Set-Cookie");

        // do something with the headers

        return resp;
    }
});
于 2012-05-23T01:19:46.477 に答える