获取 "Script at 'https://example.com/webworker.js' cannot be accessed from origin www.example.com" 即使使用 CNAME 重定向 www.到主域
Getting "Script at 'https://example.com/webworker.js' cannot be accessed from origin www.example.com" even with CNAME redirecting www. to main domain
我遇到一个问题,如果我通过 www.example.com/page 访问我正在制作的网站,那么浏览器无法初始化 Web Worker。
根据我的阅读,这是出于安全目的的预期行为。这很好,但我预计有些人会通过 www.example.com 访问该站点,而其他人只会输入 example.com,我需要两者才能访问该站点的所有资源。
我认为最简单的方法是将 www.example.com 从 @ 记录更改为 CNAME 记录,将所有调用重定向到 https://www.example。com/page 而不是 https://example.com/page
昨晚我做了,旧记录的TTL只有30m,所以即使是世界上最慢的DNS缓存现在也应该更新了。
但是,如果我尝试通过 www.example.com 访问该站点,我仍然会遇到相同域来源的错误。
我在这里错过了什么?最重要的是,我怎样才能完成这项工作?
CNAME 记录不是 HTTP 重定向。
浏览器查找 www.example.com
,为它进行 DNS 查找,底层 DNS 客户端被告知 IP 地址与 example.com
相同,因此它得到 example.com
的 IP 地址,然后向该 IP 地址发出请求 www.example.com
.
的 HTTP 请求
origin
仍将是 https://www.example.com
。
将您的 HTTP 服务器配置为针对 www.example.com
的任何请求发出 301 Moved Permanently
重定向。
我遇到一个问题,如果我通过 www.example.com/page 访问我正在制作的网站,那么浏览器无法初始化 Web Worker。
根据我的阅读,这是出于安全目的的预期行为。这很好,但我预计有些人会通过 www.example.com 访问该站点,而其他人只会输入 example.com,我需要两者才能访问该站点的所有资源。
我认为最简单的方法是将 www.example.com 从 @ 记录更改为 CNAME 记录,将所有调用重定向到 https://www.example。com/page 而不是 https://example.com/page
昨晚我做了,旧记录的TTL只有30m,所以即使是世界上最慢的DNS缓存现在也应该更新了。
但是,如果我尝试通过 www.example.com 访问该站点,我仍然会遇到相同域来源的错误。
我在这里错过了什么?最重要的是,我怎样才能完成这项工作?
CNAME 记录不是 HTTP 重定向。
浏览器查找 www.example.com
,为它进行 DNS 查找,底层 DNS 客户端被告知 IP 地址与 example.com
相同,因此它得到 example.com
的 IP 地址,然后向该 IP 地址发出请求 www.example.com
.
origin
仍将是 https://www.example.com
。
将您的 HTTP 服务器配置为针对 www.example.com
的任何请求发出 301 Moved Permanently
重定向。