範例 CORS JSON 配置

以下是 cors-rules.json 的範例內容。

此範例 JSON 檔內容說明以下重點:
  • 規則優先順序 規則按它們出現在檔案的順序進行評估,而且一旦找到相符項,評估就會停止。在此範例中, 前兩個規則都適用於原點 http://this.example.comhttp://that.example.com。第一個容許只能對符合 /api/data/documents 的資源進行讀取 ("GET")。第二個容許對符合 /api/data 的其他資源進行讀寫。因為 /api/data/documents/api/data 更具體,所以它「必須」排在第一位。如果兩個規則的順序顛倒,CORS 過濾器會忽略 /api/data/documents 規則,因為 /api/data/documents 的要求會符合 /api/data
  • 認證 前兩個規則容許認證 "allowCredentials": true,但第三個規則不容許。由於「Domno 存取服務 (DAS)」Freebusy API 旨在容許匿名要求,因此無需接受符合 /api/freebusy 之要求的認證。
  • 預設行為 當找不到資源的相符規則時,會停用跨原點要求。符合 /api/calendar 的資源沒有規則。因此,下列配置會停用 DAS 行事曆 API 的跨原點要求。預設值一律為停用跨原點要求。
{
  "version": "1.0",
  "rules": [
    {
      "resource": {
        "path": "/api/data/documents"
      },
      "allowOrigins": [ "http://this.example.com", "http://that.example.com" ],
      "allowMethods": [ "GET" ],
      "allowCredentials": true
    },
    {
      "resource": {
        "path": "/api/data"
      },
      "allowOrigins": [ "http://this.example.com", "http://that.example.com" ],
      "allowMethods": [ "GET", "POST", "PUT", "DELETE" ],
      "allowCredentials": true,
    },
    {
      "resource": {
        "path": "/api/freebusy"
      },
      "allowOrigins": [ "http://this.example.com" ],
      "allowMethods": [ "GET" ]
    }
  ]
}