我有一个节点应用程序,其中服务器托管在heroku上。在我发送大约10或15之前,我的所有请求都是成功的。然后我开始收到CORS错误。知道为什么会这样吗?
试一试。 http://danielrasmuson.github.io/
这是我的“CORS启用代码”#39;我现在正在尝试一些事情。
var app = express();
app.use(cors());
app.all('/*', function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
next();
});
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
答案 0 :(得分:1)
我不知道是否为时已晚,但这可能会有所帮助: 我在这段代码中遇到了同样的问题:(偶尔我会得到cors erros和503 heroku错误)
router.post('/create', function (req, res, next) {
password(req.body.user_password).hash(function (error, hash) {
if (error)
throw new Error('Something went wrong!' + error)
console.log(req.body);
req.body.user_password = hash;
User.create(req.body, function (err, post) {
if (err) return next(err);
console.log(post);
res.json(post);
});
});
});
当我将其更改为:
router.post('/create', function (req, res, next) {
password(req.body.user_password).hash(function (error, hash) {
if (error) {
throw new Error('Something went wrong!' + error);
} else {
req.body.user_password = hash;
User.create(req.body, function (err, post) {
if (err) {
throw new Error('Something went wrong!' + err);
} else {
res.json(post);
}
});
}
});
});
偶尔也不会有失败的代码和cors。
最后它似乎是节点应用程序的问题而不是heroku。
干杯 Blazej
答案 1 :(得分:1)
我已经为此苦苦挣扎了一段时间。我会收到 CORS 错误...偶尔,当对相同的 API 执行相同的请求时。
开发工具中的网络选项卡提到缺少 CORS 源或其他与 CORS 相关的错误,因此这可能会误导您查看 CORS 设置。
但是,详细的服务器日志表明这不是 CORS 问题。问题来自服务器在请求后返回的错误。
就我而言,服务器发送的错误产生了 CORS 相关问题,但这些 CORS 问题并不是这里的核心问题。
总而言之,可以访问详细的服务器日志,并查看您如何处理服务器响应中的错误(例如您从请求正文中读取的未定义值等错误...)
如果我理解正确的话,上面的@Błażej Grzeliński 由于服务器响应中的错误管理不当而遇到了同样的问题。