No 'Access-Control-Allow-Origin' header is present on the requested resource. Apollo Graphql, Koajs
Я добавил frontend через vercel, а backend через heroku. На frontend получаю данные через @apollo/client:
const createApolloClient = (cache = {}) =>
new ApolloClient({
ssrMode: typeof window === "undefined",
cache: new InMemoryCache().restore(cache),
link: createUploadLink({ uri: process.env.API_URI,
credentials: 'include'
}),
});
export const apolloClient = createApolloClient(ApolloCache)
На backend использую koajs и Apollo Graphql :
const __dirname = path.resolve();
async function startServer() {
// Ensure the upload directory exists.
await makeDir(fileURLToPath(UPLOAD_DIRECTORY_URL));
const corsOptions = {
origin: process.env.CLIENT,
// 'http://localhost:3001', 'http://localhost:4000/graphql'],
credentials: true,
}
const app = new Koa()
const apolloServer = new ApolloServer({ schema });
await apolloServer.start();
app
.use(
graphqlUploadKoa({
maxFileSize: 10000000, // 10 MB
maxFiles: 20,
})
)
.use(serve(path.join(__dirname, '/uploads')))
// @ts-ignore
.use(cors(corsOptions))
.use(apolloServer.getMiddleware({ app, path: "/graphql", cors: false }))
.listen(process.env.PORT, () => {
console.info(
`Serving http://localhost:${process.env.PORT} for ${process.env.NODE_ENV}.`
);
});
}
mongoose
.set('strictQuery', false)
.connect(process.env.MONGO_DB, {
useUnifiedTopology: true,
useNewUrlParser: true
}).then(() => console.log('?Db ok'))
.catch((err) => console.log('DB error ❌', err))
startServer();
Помогите пожалуйста, чем может быть вызвана эта ошибка?
