mirror of
https://github.com/zhigang1992/workers-graphql-server.git
synced 2026-01-12 09:43:41 +08:00
Initial code spike towards fixing CORS headers
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
const apollo = require('./handlers/apollo')
|
||||
const playground = require('./handlers/playground')
|
||||
const setCors = require('./utils/setCors')
|
||||
|
||||
const graphQLOptions = {
|
||||
// Set the path for the GraphQL server
|
||||
@@ -17,7 +18,12 @@ const handleRequest = request => {
|
||||
const url = new URL(request.url)
|
||||
try {
|
||||
if (url.pathname === graphQLOptions.baseEndpoint) {
|
||||
return apollo(request, graphQLOptions)
|
||||
const response =
|
||||
request.method === 'OPTIONS'
|
||||
? new Response('', { status: 204 })
|
||||
: await apollo(request, graphQLOptions)
|
||||
setCorsHeaders(response)
|
||||
return response
|
||||
} else if (
|
||||
graphQLOptions.playgroundEndpoint &&
|
||||
url.pathname === graphQLOptions.playgroundEndpoint
|
||||
|
||||
9
src/utils/setCors.js
Normal file
9
src/utils/setCors.js
Normal file
@@ -0,0 +1,9 @@
|
||||
const setCorsHeaders = response => {
|
||||
response.headers.set('Access-Control-Allow-Origin', '*')
|
||||
response.headers.set('Access-Control-Allow-Credentials', 'true')
|
||||
response.headers.set('Access-Control-Allow-Methods', 'GET,POST')
|
||||
response.headers.set('Access-Control-Allow-Headers', 'application/json, Content-type')
|
||||
response.headers.set('X-Content-Type-Options', 'nosniff')
|
||||
}
|
||||
|
||||
module.exports = setCorsHeaders
|
||||
Reference in New Issue
Block a user