Node.js CORS设置被忽略

Node.js CORS设置被忽略,node.js,cors,apollo-client,next.js,Node.js,Cors,Apollo Client,Next.js,node.js显然忽略了我的cors设置,我遇到了一个问题。 以下是我的回购协议: 后端中的罪犯代码: ... //config.CLIENT_URL is 'http://localhost:3000' const corsOptions: cors.CorsOptions = { origin: [String(config.CLIENT_URL)], credentials: true, }; app.use(cors(corsOptio

node.js显然忽略了我的cors设置,我遇到了一个问题。 以下是我的回购协议:

后端中的罪犯代码:

...
//config.CLIENT_URL is 'http://localhost:3000'

const corsOptions: cors.CorsOptions = {
        origin: [String(config.CLIENT_URL)],
        credentials: true,
    };
    app.use(cors(corsOptions));
...
阿波罗计划的实施

//config.BACKEND_URL_DEV is 'http://localhost:4000/graphql/'
function create (initialState, { getToken }) {
  const httpLink = createHttpLink({
    credentials: "include",
  uri: `${config.BACKEND_URL_DEV}`,
  })

  const authLink = setContext((_, { headers }) => {
    let token = getToken()
    return {
      headers: {
        ...headers,
        cookie: token ? token : ''
      }
    }
  })

  return new ApolloClient({
    connectToDevTools: process.browser,
    ssrMode: !process.browser, // Disables forceFetch on the server (so queries are only run once)
    link: authLink.concat(httpLink),
    cache: new InMemoryCache().restore(initialState || {})
  })
}
当我转到
http://localhost:3000/dashboard
我知道如果我通过
graphql playerd
登录,将执行我的查询,这是我收到的消息:

有趣的是,虽然收到了足够多的数据,但CORS阻止了它的显示。 在Opera、Chrome和Firefox开发版上测试

如果请求源域正确,我的后端似乎正在将
*
设置为
Access Control Allow Origin


非常感谢您对此事的任何见解

原来问题在于将
cors
配置传递给
apollo server express
,因为
app.use(cors(corsOptions))
对这种设置实际上没有任何作用

正确答案: 将cors配置移动到此部分:

apolloServer.applyMiddleware({ app, cors: corsOptions });

找到答案多亏了这个

尝试执行
console.log(cors(corsOptions))
并检查所有值,以确保所有设置都正确这将返回
[函数:corsmidware]
,但我找到了解决方案!把它贴出来作为回答谢谢@evgenifotia你让我走上了正轨!