CORS
默认情况下,PostgREST 设置了高度宽松的跨域资源共享,这就是它接受来自任何域的 Ajax 请求的原因。此行为可以通过使用 server-cors-allowed-origins 进行配置。
它还处理浏览器执行的 预检请求,这些请求使用返回的 Access-Control-Max-Age: 86400
标头(86400 秒 = 24 小时)进行缓存。这有助于减少后续请求的延迟。
一个 POST
预检请求将如下所示
curl -i "http://localhost:3000/items" \
-X OPTIONS \
-H "Origin: http://example.com" \
-H "Access-Control-Request-Method: POST" \
-H "Access-Control-Request-Headers: Content-Type"
HTTP/1.1 200 OK
Access-Control-Allow-Origin: http://example.com
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS, HEAD
Access-Control-Allow-Headers: Authorization, Content-Type, Accept, Accept-Language, Content-Language
Access-Control-Max-Age: 86400
允许的来源
使用以下配置设置,PostgREST 将接受来自域 http://example.com
和 http://example2.com
的 CORS 请求。
server-cors-allowed-origins="http://example.com, http://example2.com"