如何在backbone.js模型中获取cookie值?

时间:2012-05-23 00:54:25

标签: html5 backbone.js

我在HTML5中有一个简单的Backbone.js / Bootstrap前端,带有Node.js / Restify后端。我在服务器的标头响应中设置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
           });

在模型中回调一个解析方法。

如何读取模型中的cookie值?

3 个答案:

答案 0 :(得分:1)

包括Cookie.js

然后,您可以像这样引用各个Cookie:

var token = Cookie.get('token')

# token == 'ninja'

答案 1 :(得分:1)

这是我想出来的。我的应用程序有两个组件 - 来自一个域的HTML / js与另一个域上的REST服务进行通信(因此是跨域的。)因为cookie是从REST设置的,所以它看起来不能跨域读取。因此,即使服务器正在发送cookie,网页也不会存储cookie。另一种方法是使用本地cookie或使用http://backbonetutorials.com/cross-domain-sessions/所示的技术。

答案 2 :(得分:0)

假设您正在使用带有Backbone的jQuery,您可以通过调用parsegetAllResponseHeaders来定义模型中的getResponseHeader函数来获取标题:

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;
    }
});