Node.js 快速重定向到远程 URL 一直失败 (CORS)
Node.js express redirect to remote URL keeps failing (CORS)
我尝试在我的 Nodejs 服务器下订单后重定向到支付网关,但 none 的浏览器允许我这样做。
这是我的代码,直接来自我的支付服务的代码示例。
res.writeHead(302, { Location : payment.getPaymentUrl() });
res.end();
这总是导致:
XMLHttpRequest cannot load https://www.mollie.com/payscreen/pay/CtcH7nkDQr. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:1337' is therefore not allowed access.
我已经配置我的应用程序在那里使用 headers :
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Headers", "Content-Type");
res.header("Access-Control-Max-Age", "3600");
next();
});
您的问题与 https://www.mollie.com
不响应 CORS headers,禁用来自浏览器的跨源请求有关。
您可能需要某种代理来从服务器端代码而不是通过 XMLHttpRequest
向支付网关发出请求
创建一个接受所需负载的路由,然后将其发送到支付网关,处理响应和 return 结果。
我采纳了 Juicy Scripter 的建议并尝试使用现有的在线代理来查看它是否有效。我没有再收到错误,一切似乎都很好,但没有发生实际的重定向。这并不奇怪,因为我最初的请求来自 Angular 的 $http 模块,所以响应在客户端上得到解决。无论如何,我最终将付款 URL 返回到我的 Angular 应用程序并从那里重定向到它。感谢您的帮助!
a) 如果你需要转发到另一个网站?如果是这样,你应该使用这个
res.redirect( payment.getPaymentUrl() ); // Your Url go to
b) 如果你需要发送url,请以JSON格式发送,所以你取HTML
在您的服务器中
res.json({ url : payment.getPaymentUrl() });
在你的HTML
$.getJSON('MyUrl', function(data){
console.log(data.url);
});
cors 域,好的!
我尝试在我的 Nodejs 服务器下订单后重定向到支付网关,但 none 的浏览器允许我这样做。
这是我的代码,直接来自我的支付服务的代码示例。
res.writeHead(302, { Location : payment.getPaymentUrl() });
res.end();
这总是导致:
XMLHttpRequest cannot load https://www.mollie.com/payscreen/pay/CtcH7nkDQr. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:1337' is therefore not allowed access.
我已经配置我的应用程序在那里使用 headers :
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Headers", "Content-Type");
res.header("Access-Control-Max-Age", "3600");
next();
});
您的问题与 https://www.mollie.com
不响应 CORS headers,禁用来自浏览器的跨源请求有关。
您可能需要某种代理来从服务器端代码而不是通过 XMLHttpRequest
创建一个接受所需负载的路由,然后将其发送到支付网关,处理响应和 return 结果。
我采纳了 Juicy Scripter 的建议并尝试使用现有的在线代理来查看它是否有效。我没有再收到错误,一切似乎都很好,但没有发生实际的重定向。这并不奇怪,因为我最初的请求来自 Angular 的 $http 模块,所以响应在客户端上得到解决。无论如何,我最终将付款 URL 返回到我的 Angular 应用程序并从那里重定向到它。感谢您的帮助!
a) 如果你需要转发到另一个网站?如果是这样,你应该使用这个
res.redirect( payment.getPaymentUrl() ); // Your Url go to
b) 如果你需要发送url,请以JSON格式发送,所以你取HTML
在您的服务器中
res.json({ url : payment.getPaymentUrl() });
在你的HTML
$.getJSON('MyUrl', function(data){
console.log(data.url);
});
cors 域,好的!