diff options
| author | Travis Fischer <[email protected]> | 2021-06-02 13:59:27 -0400 |
|---|---|---|
| committer | Travis Fischer <[email protected]> | 2021-06-02 13:59:27 -0400 |
| commit | f6321fc3249d83a0059ef47978ed101d3c75375f (patch) | |
| tree | 9da8b59a0c94c08f92506e57653b8c9f55fa85e8 /src/handle-options.js | |
| download | cf-image-proxy-f6321fc3249d83a0059ef47978ed101d3c75375f.tar.xz cf-image-proxy-f6321fc3249d83a0059ef47978ed101d3c75375f.zip | |
feat: import from notion2site repo
Diffstat (limited to 'src/handle-options.js')
| -rw-r--r-- | src/handle-options.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/handle-options.js b/src/handle-options.js new file mode 100644 index 0000000..62cb977 --- /dev/null +++ b/src/handle-options.js @@ -0,0 +1,29 @@ +const allowedMethods = 'GET, HEAD, POST, PUT, DELETE, TRACE, PATCH, OPTIONS' + +export function handleOptions(request) { + // Make sure the necessary headers are present for this to be a valid pre-flight request + if ( + request.headers.get('Origin') !== null && + request.headers.get('Access-Control-Request-Method') !== null && + request.headers.get('Access-Control-Request-Headers') !== null + ) { + // Handle CORS pre-flight request. + return new Response(null, { + headers: { + 'Access-Control-Allow-Origin': '*', + 'Access-Control-Allow-Methods': allowedMethods, + 'Access-Control-Allow-Headers': request.headers.get( + 'Access-Control-Request-Headers' + ) + } + }) + } else { + // Handle standard OPTIONS request. + // If you want to allow other HTTP Methods, you can do that here. + return new Response(null, { + headers: { + Allow: allowedMethods + } + }) + } +} |