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

相關文章
相關標籤/搜索