Браузер использует OPTIONS
метод проверки нескольких CROS.(Например, какие методы разрешены)
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");
// Add this
if (req.method === 'OPTIONS') {
res.header('Access-Control-Allow-Methods', 'PUT, POST, PATCH, DELETE, OPTIONS');
res.header('Access-Control-Max-Age', 120);
return res.status(200).json({});
}
next();
});
Проверьте MDN для получения полной информации о методе OPTIONS
.
РЕДАКТИРОВАТЬ: Я простозаметил, вот еще одна ошибка, что это приложение использует два разных порта локально, но в Heroku вы получите только один порт.
EDIT 2: Проблема с портом была исправлена пользователем, и этоответ содержит фактический ответ на вопрос.