data-dictionary icon indicating copy to clipboard operation
data-dictionary copied to clipboard

Update docs and code with info about enable CORS requests

Open GavinRay97 opened this issue 5 years ago • 0 comments

From conversation with someone trying to integrate the app, realized that the Next.js API doesn't have CORS enabled.

To fix this, /pages/api/graphql.ts needs to updated with:

// Make sure to "yarn add cors" or "npm i cors"
import CORS from 'cors'

const apolloServer = new ApolloServer({ typeDefs, resolvers })
const cors = CORS({ origin: "*" })
​
function runMiddleware(req, res, fn) {
  return new Promise((resolve, reject) => {
    fn(req, res, (result) => {
      if (result instanceof Error) return reject(result)
      return resolve(result)
    })
  })
}

export default async function handler(req, res) {
  // Set CORS headers to allow all origins
  await runMiddleware(req, res, cors)
  // Create and run GQL handler
  const graphql = apolloServer.createHandler({ path: "/api/graphql" })
  return graphql(req, res)
}

GavinRay97 avatar Dec 18 '20 16:12 GavinRay97