首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4:从API调用中删除会话值

Rails 4:从API调用中删除会话值
EN

Stack Overflow用户
提问于 2014-09-29 22:30:49
回答 1查看 281关注 0票数 0

我有一个rails应用程序'A',它在另一个应用程序'B'的iframe上运行。当应用程序'A'加载到'B'的iframe时,我在会话上设置了一些值。当用户执行应用程序'B'的某些操作时,我希望销毁这些会话值。因此,我创建了一个简单的API方法,它只删除会话值。每当调用删除会话值的API时,API调用都是成功的,但是该方法中似乎不存在该会话值。

我使用了三种本应有效的方法。但它不起作用。API::AController方法是:

代码语言:javascript
复制
def delete_session_value
   session.key?(:value) # Returns false here
   reset_session # 1
   session[:value] = nil # 2
   session.delete(:value) # 3
end

使用简单的assignment session[:value] = 'something'ApplicationController设置会话。在整个应用程序中都可以访问会话值。API控制器是否无法访问会话值?有没有其他方法可以在不影响流程的情况下解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2014-09-29 22:44:15

如果你的会话存储是基于cookie的(默认情况下是),那么这是一个正确的行为。不能从iframe读取会话cookies (或任何其他cookies)。参见https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy

如果这是同源请求,您可以尝试将x-frame-options标头设置为SAMEORIGINhttps://developer.mozilla.org/pl/docs/HTTP/X-Frame-Options

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26102327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档