首页 > 解决方案 > 如何将 Cors 添加到 PostGraphile

问题描述

我正在尝试将 cors 添加到快递服务器中的 PostGraphile 路由中。

app.use(
  postgraphile(process.env.DATABASE_URL || process.env.POSTGRES, ‘public’, {
  watchPg: true,
  graphiql: true,
  enhanceGraphiql: true,
  enableCors: true,
  }),
);

当我试图从邮递员那里呼叫路线时,我在 Access-Control-Allow-Origin 中得到 *(通配符)。

如何添加特定路线以通过 Access-Control-Allow-Origin 返回?

标签: node.jsexpresscorspostgraphile

解决方案


您可以在 postgraphile 之前使用cors中间件并在选项中设置原点:

const cors = require('cors');
const { postgraphile } = require('postgraphile');

const options = {
    origin: 'https://your_origin',
};

app.use(cors(options));

// Enable pre-flight requests for all routes
app.options('*', cors(options));

app.use(
    postgraphile(process.env.DATABASE_URL || process.env.POSTGRES, ‘public’, {
    watchPg: true,
    graphiql: true,
    enhanceGraphiql: true,
    }),
);

这会将Access-Control-Allow-Origin标题设置为https://your_origin


推荐阅读