У меня проблема с node.js, очевидно, игнорирующим мои настройки cors.Вот мои репозитории: Backend Frontend
Код виновника в backend:
...
//config.CLIENT_URL is 'http://localhost:3000'
const corsOptions: cors.CorsOptions = {
origin: [String(config.CLIENT_URL)],
credentials: true,
};
app.use(cors(corsOptions));
...
Реализация Apollo
//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 playground
, это сообщение, которое я получаю:
Получены достаточно забавные данные, но CORS не позволяет отображать их.Протестировано на Opera, Chrome и Firefox DevEdition
Похоже, мой бэкэнд устанавливает *
в Access-Control-Allow-Origin
, если домен источника запроса правильный.
Любое понимание этого вопроса очень ценится!