【发布时间】:2019-06-29 02:01:46
【问题描述】:
我在不同的端口 (8000,8001) 上运行后端和前端,我无法从 express 服务器进行 res.redirect(...) 并且浏览器显示 CORS 错误(访问 XMLHttpRequest at...) .
这是 MEVN(Mongo, Express, Vue, Nodejs) 应用程序,Vue 前端和 express(nodejs) 后端在不同的端口上运行。我在后端实现了 cors(),它使我的前端可以发出请求(获取、发布)但后端仍然无法使用 res.redirect("...") 重定向前端页面,因为它显示了 CORS错误。
// Backend
var cors = require('cors');
app.use(cors())
...
function (req, res, next){ // some middleware on backend
...
res.redirect('http://urltofrontend'); // cause error
// Error msg on Chrome
Access to XMLHttpRequest at 'http://localhost:8001/' (redirected from
'http://localhost:8000/api/login') from origin 'null' has been blocked
by CORS policy: Request header field content-type is not allowed by
Access-Control-Allow-Headers in preflight response.
我已经完成了 cors() 的实现,它允许我的前端向我的后端发出 http 请求,并且运行良好。但是,来自后端的 res.redirect( ...) 被 CORS 错误阻止。
【问题讨论】:
-
我好几天都找不到这个问题的任何答案,它们将被部署在不同的端口中,所以合并不是一种选择。如果有人给我任何建议,那将是一个巨大的帮助!谢谢!