Node.js express重定向到远程URL失败(CORS)
在我的Nodejs服务器上下订单后,我试图重定向到支付网关,但我的浏览器都不允许我这样做 这是我的代码,它直接来自我的支付服务的代码示例Node.js express重定向到远程URL失败(CORS),node.js,express,cors,Node.js,Express,Cors,在我的Nodejs服务器上下订单后,我试图重定向到支付网关,但我的浏览器都不允许我这样做 这是我的代码,它直接来自我的支付服务的代码示例 res.writeHead(302, { Location : payment.getPaymentUrl() }); res.end(); 这通常会导致: XMLHttpRequest cannot load https://www.mollie.com/payscreen/pay/CtcH7nkDQr. No 'Access-Control-Allo
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.
我已将我的应用程序配置为使用以下标题:
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头响应,禁用来自浏览器的跨源请求
您可能需要使用某种代理从服务器端代码向支付网关发出请求,而不是通过XMLHttpRequest
创建一个接受所需负载的路由,然后将其发送到支付网关,处理响应并返回结果。我接受了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域名,好的 当我转到
https://www.mollie.com/payscreen/pay/CtcH7nkDQr
在我的浏览器中,然后从Chrome Developer Tools网络选项卡检查标题,我看不到任何标题。以下是我得到的完整标题:HTTP/1.1200OK服务器:nginx日期:周二,2015年2月24日00:46:24GMT内容类型:text/html内容长度:2142连接:保持活动严格的传输安全性:max age=15552000 X-XSS-Protection:1;mode=block X-Frame-Options:DENY Vary:Accept Encoding Content Encoding:gzip X-who:dc1-web-3
它实际上似乎是nginx,甚至不是nodejs。大概