# CORS(교차 출처 리소스 공유) 설정하기

**URL:** https://meta.discourse.org/t/setup-cross-origin-resource-sharing-cors/270819
**Category:** Self-Hosting
**Tags:** how-to
**Created:** [7월 6, 2023, 9:46오후 UTC](https://meta.discourse.org/t/setup-cross-origin-resource-sharing-cors/270819 "2023-07-06T21:46:39Z")
**Posts on this page:** 1
**Showing post:** 3

<div class="post-metadata">

### Author: ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)
#### Post date: [5월 26, 2025, 1:36오전 UTC](https://meta.discourse.org/t/setup-cross-origin-resource-sharing-cors/270819/3 "2025-05-26T01:36:46Z")

</div>

사이트의 app.yml 파일 env 섹션에 `DISCOURSE_ENABLE_CORS: "true"`를 추가했습니다.  
그 후 앱을 다시 빌드했습니다.  
이어서 `cors_origins` 섹션으로 가서 상호작용을 시도하는 사이트의 전체 URL을 추가했지만 여전히 작동하지 않습니다.  
메인 사이트가 오프라인일 때 정보를 제공하기 위한 페이지를 생성했습니다.  
이 페이지에 메인 사이트 상태를 확인하고, 복구되면 해당 사이트로 리다이렉트하기 위한 다음 JS를 넣었지만 작동하지 않는 것 같습니다.  
코드는 다음과 같습니다:

```plaintext
    <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>

```

그리고 콘솔 오류는 다음과 같습니다:

````plaintext
[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)
```\n혹시 통찰이 있으신 분이 계시다면 알려주시면 좋겠습니다. Grok과 저는 막막합니다.
````

---

_[View the full topic](https://meta.discourse.org/t/setup-cross-origin-resource-sharing-cors/270819)._
