我正在为前端处理CORS。在我的本地主机(开发环境)上,给定的cors可以正常工作。但是当我将应用程序部署到heroku
时,它给出了给定的错误。
Access to XMLHttpRequest at 'myHerokuURL' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
这是我正在使用的CORS。
app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', '*');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With, Authorization, x-auth-token, content-type');
res.setHeader('Access-Control-Allow-Credentials', false);
next();
});
答案 0 :(得分:0)
您需要添加如下所示的cors,
const cors = require('cors');
app.use(cors());
答案 1 :(得分:0)
在主 app.js 文件中设置路由之前,您需要先设置芯线。
npm i --save cors
您还可以根据环境模式(例如开发或生产)将cors设置为自动更改
以下是我通常如何设置cors的示例:
var corsUrl;
if (process.env.NODE_ENV === 'development') {
corsUrl = process.env.LOCAL_URL // http://localhost:8080
} else if (process.env.NODE_ENV === 'production') {
corsUrl = process.env.DEPLOY_URL // http://myapp.com
}
app.use(cors({
origin: corsUrl
}))
注意::使用http s ://myapp.com-如果要在服务器上强制使用安全协议。
然后设置路线
app.use('/', indexRoutes)
admin.use('/', adminRoutes)
Cors文档-https://www.npmjs.com/package/cors 希望这会有所帮助。