サイトの app.yml ファイルの env セクションに DISCOURSE_ENABLE_CORS: "true" を追加しました。
その後、アプリを再構築しました。
次に cors_origins セクションに移動し、連携させようとしているサイトの完全なURLを追加しましたが、まだ機能していません。
メインサイトがオフラインの場合に情報を表示するページを作成しました。
メインサイトを確認し、復旧したらリダイレクトするためにこのJavaScriptをページに配置しましたが、機能していないようです。
コードはこちらです。
<script>
function checkSiteStatus() {
fetch('https://discourse.technospider.com', {
method: 'HEAD',
mode: 'cors', // ステータスコードを取得するためにCORSを使用
cache: 'no-store' // キャッシュを避ける
})
.then(response => {
console.log('サイトチェック: ステータス', response.status);
if (response.ok) { // 200-299 のステータスコード
console.log('サイトは稼働中です。Discourseにリダイレクトします');
window.location.replace('https://discourse.technospider.com');
} else {
console.log('サイトはまだダウンしています(ステータス: ' + response.status + ')。20秒後に再試行します');
setTimeout(checkSiteStatus, 20000);
}
})
.catch(error => {
console.log('サイトチェック: エラー(ダウンしているかCORSの問題の可能性が高い):', error.message);
setTimeout(checkSiteStatus, 20000);
});
}
// すぐにチェックを開始します
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)
何か insight があれば教えていただけると嬉しいです。Grok と私はお手上げ状態です。