我在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值?
答案 0 :(得分:1)
答案 1 :(得分:1)
这是我想出来的。我的应用程序有两个组件 - 来自一个域的HTML / js与另一个域上的REST服务进行通信(因此是跨域的。)因为cookie是从REST设置的,所以它看起来不能跨域读取。因此,即使服务器正在发送cookie,网页也不会存储cookie。另一种方法是使用本地cookie或使用http://backbonetutorials.com/cross-domain-sessions/所示的技术。
答案 2 :(得分:0)
假设您正在使用带有Backbone的jQuery,您可以通过调用parse
或getAllResponseHeaders
来定义模型中的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;
}
});