範例 CORS JSON 配置
以下是 cors-rules.json 的範例內容。
此範例 JSON 檔內容說明以下重點:
- 規則優先順序 規則按它們出現在檔案的順序進行評估,而且一旦找到相符項,評估就會停止。在此範例中, 前兩個規則都適用於原點 http://this.example.com 及 http://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" ]
}
]
}