Я получаю следующую ошибку в моей консоли при попытке вызвать POST на моем сайте.(Угловой интерфейс с экспресс-интерфейсом внутри контейнера Docker).
Доступ к XMLHttpRequest по адресу https://exp.mysite.com/i_l' из источника 'https // frontend.mysite.com' заблокирован политикой CORS: Ответ на запрос предварительной проверки не проходит проверку контроля доступа: На запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».
Примечание. У меня точно такая же настройка на локальном ПК, ивсе работает нормально.
Ниже показано, как мой файл server.js на экспресс-стороне настроен для CORS:
const path = require('path');
const fs = require('fs');
const express = require('express');
const multer = require('multer');
const bodyParser = require('body-parser')
const app = express();
const router = express.Router();
const DIR = './uploads';
let storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, DIR);
},
filename: (req, file, cb) => {
cb(null, file.fieldname + '-' + Date.now() + '.' + path.extname(file.originalname));
}
});
let upload = multer({ storage: storage });
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(function(req, res, next) {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Credentials", "true");
res.setHeader("Access-Control-Allow-Methods", "GET,HEAD,OPTIONS,POST,PUT");
res.setHeader("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
next();
});
const PORT = process.env.PORT || 3001;
app.listen(PORT, function () {
console.log('Node.js server is running on port ' + PORT);
});