play 学习 四: 关于play跨域

默认, 在知足下面三个条件的状况下,Play框架会作一CSRF(跨站点请求伪造) 的检查:前端

  • 请求方法不是GET, HEAD 或 OPTIONS.
  • 情求包含Cookie或者Authorization头.
  • play没有配置CORS过滤相信请求

经过以下配置,能够pass  CSRF检查:后端

play.filters.csrf.header.bypassHeaders {
X-Requested-With = "*"   // X-Requested-With头域表示请求是经过Ajax发的,就会pass CSRF 检查
Csrf-Token = "nocheck"  // 这个也会pass CSRF检查
}
cookie

-----------------------------------------------------------------分割线-------------------------------------------------------------------------------框架

我遇到的问题是:前端的两个请求, 成功的request 不带cookie, 不成功的带了cookie(相对路径), 然后端对于有cookie的会执行检查。我作了以下尝试:
play.filters.csrf.header.bypassHeaders {
X-Requested-With = "*"
Csrf-Token = "nocheck"
}spa

问题解决。csrf

相关文章
相关标签/搜索