我在站点的 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('Site check: Status', response.status);
if (response.ok) { // 200-299 状态码
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);
});
}
// 立即开始检查
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)
如果有人有什么见解,我很想知道。Grok 和我都束手无策。