0
我需要在每个端点上启用CORS,以匹配/api/v1/support/*
路径的POST请求。如何使用“cors”库在Express路径上配置CORS
我正在向凭证输入/api/v1/support/graphql
的POST请求,但预检请求(OPTIONS一)返回401.我不确定我做错了什么。
这是我的配置(注意,我在下面这个样本中已经改变的实际域虚拟):
const corsOptions = {
origin: /mydomain\.com$/,
credentials: true,
maxAge: 3600
};
app.options('/api/v1/support/*', cors(corsOptions));
app.post('/api/v1/support/*', cors(corsOptions));
// graphQLRouter is an instance of express.Router()
app.use('/api/v1/support/graphql', [ fowardIP, validateTokenInCookie ], graphQLRouter);
在服务器上是request.OPTIONS每规范,即访问控制允许的方法的法律,” .... 。,OPTIONS',除了浏览器做出'预检'请求之外,您还可能需要调整服务器以符合规范。请参阅access_control标题下的'ALLOW_ORIGIN','ALLOW_METHODS','ALLOW_HEADERS' –
浏览器不要'在CORS预检选项请求中发送凭证。显然,在您的应用程序代码的某处,您需要对'/ api/v1/support/graphql'路由进行验证,这对于POST请求来说很合适,因为如果您的前端代码将该凭证作为该POST的一部分发送,那会按预期工作。但是这对于OPTIONS请求并不好。如果没有服务器需要验证,这需要在没有任何证书发送的情况下运行。 – sideshowbarker