【发布时间】:2018-10-27 08:02:42
【问题描述】:
我有一个已经启用了 cors 中间件的 express 服务器。
app.use(cors({ origin: true }));
我有一个单页应用程序,它发出一个请求,并假设在之后重定向到贝宝。 (它来自不同的来源,如下所列)
https://myAngularApp.com(一些服务)
http.post('https://myapi.com/create-payment', data);
所以回到快递服务器,我想将它们发送到贝宝进行身份验证:
app.post('/create-payment', (req, res) => {
res.redirect('https://www.sandbox.paypal.com/somewhere..');
})
回到客户端我得到以下错误:
无法加载https://www.sandbox.paypal.com/somewhere:对预检请求的响应未通过访问控制检查: 请求中不存在“Access-Control-Allow-Origin”标头 资源。因此不允许访问 Origin 'null'。
查看我的客户向paypal发出的请求,您还可以看到来源为空。
(请注意,禁用app.use(cors({ origin: true })); 将不允许客户端从服务器获得正常响应,因此这已经表明cors中间件已链接。
注释掉 cors 时出错
// app.use(cors({ origin: true })); - Commented Out
未能加载“https://myapi.com/create-payment”:重定向自 'https://myapi.com/create-payment' 到 'https://www.sandbox.paypal.com/somewhere.'已被 CORS 阻止 政策:没有“Access-Control-Allow-Origin”标头出现在 请求的资源。原点 'https://myAngularApp.com' 因此不是 允许访问。
我还需要在 express 服务器上设置什么才能将客户端重定向到 paypal?
【问题讨论】:
标签: firebase express cors google-cloud-functions