Я добавил DISCOURSE_ENABLE_CORS: "true" в секцию env файла app.yml моего сайта.
Затем я пересобрал приложение.
После этого я зашел в секцию cors_origins и добавил полный URL сайта, с которым пытаюсь настроить взаимодействие, но это всё ещё не работает.
Я создал страницу для отображения информации, когда основной сайт недоступен.
Я вставил этот JS в страницу, чтобы проверять основной сайт и перенаправлять на него, как только он снова станет доступен, но, похоже, это не работает.
Вот код:
<script>
function checkSiteStatus() {
fetch('https://discourse.technospider.com', {
method: 'HEAD',
mode: 'cors', // Use CORS to get status code
cache: 'no-store' // Avoid caching
})
.then(response => {
console.log('Site check: Status', response.status);
if (response.ok) { // 200-299 status codes
console.log('Site is up, redirecting to Discourse');
window.location.replace('https://discourse.technospider.com');
} else {
console.log('Site is still down (status: ' + response.status + '), retrying in 20 seconds');
setTimeout(checkSiteStatus, 20000);
}
})
.catch(error => {
console.log('Site check: Error (likely down or CORS issue):', error.message);
setTimeout(checkSiteStatus, 20000);
});
}
// Start checking immediately
checkSiteStatus();
</script>
А вот ошибка в консоли:
[Error] Origin https://www.technospider.com is not allowed by Access-Control-Allow-Origin. Status code: 200
[Error] Fetch API cannot load https://discourse.technospider.com/ due to access control checks.
[Error] Failed to load resource: Origin https://www.technospider.com is not allowed by Access-Control-Allow-Origin. Status code: 200 (discourse.technospider.com, line 0)
[Log] Site check: Error (likely down or CORS issue): – "Load failed" (berightback, line 78)
Если у кого-то есть какие-либо идеи, буду рад узнать о них. Грок и я в тупике.