У меня есть сервер Express, на котором я запускаю приложение Angular (потому что мне нужен рендеринг на стороне сервера).
Проблема в том, что при первом обращении к приложению все работает нормально.
Проблема появляется, когда я перехожу на какую-то страницу и возвращаюсь на предыдущую страницу, где запрос работал нормально. Когда я возвращаюсь назад, запрос больше не работает, он показывает мне следующую ошибку:
Доступ к XMLHttpRequest по адресу http://myserver/api/endpoint' от источника
'http://localhost:4000' заблокирован политикой CORS: Ответ на
предварительный запрос не проходит проверку контроля доступа: нет
Заголовок «Access-Control-Allow-Origin» присутствует в запрошенном
ресурс.
Я пытался использовать CORS и другие вещи, но в итоге выдает ту же ошибку.
Это та часть, где я использую CORS:
const allowedOrigins = [
'http://localhost:4000',
'http://localhost:4200',
'http://myserver'
];
const corsOptions = {
origin: function(origin, callback) {
if (!origin) {
return callback(null, true);
}
if (allowedOrigins.indexOf(origin) === -1) {
const msg = 'The CORS policy for this site does not allow access from the specified Origin.';
return callback(new Error(msg), false);
}
return callback(null, true);
},
credentials: true,
optionsSuccessStatus: 200,
methods: 'GET,PUT,POST,OPTIONS',
allowedHeaders: 'Content-Type,Authorization'
};
app.use(cors(corsOptions));
Попробовал также без CORS:
app.use(function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'X-Requested-With,content-Type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});
Итак, в чем может быть проблема, что первый раз работает, а второй нет?
Может ли это быть связано с этой ошибкой из экспресс-консоли: «ОШИБКА TypeError: spanEl.getBoundingClientRect не является функцией»?