我在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值?
发布于 2012-05-23 09:11:23
发布于 2012-05-24 23:35:08
这是我想出来的。我的应用程序有两个组件-来自一个域的HTML/js,它与另一个域上的REST服务对话(因此是跨域的)。因为cookie是从REST设置的,所以它似乎不能跨域读取。因此,即使服务器正在发送cookie,网页也不会存储它。一种替代方法是使用本地cookies或使用http://backbonetutorials.com/cross-domain-sessions/所示的技术。
发布于 2012-05-23 09:19:46
假设您将jQuery与Backbone一起使用,则可以通过调用getAllResponseHeaders或getResponseHeader在模型中定义parse函数来获取标头
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;
}
});https://stackoverflow.com/questions/10712113
复制相似问题