gpt4 book ai didi

javascript - 为什么这个简单的 CORS GET 会失败?

转载 作者:行者123 更新时间:2023-11-30 16:02:57 24 4
gpt4 key购买 nike

我有一台运行 Apache 的服务器。 .htaccess 包含以下内容:

<IfModule mod_headers.c>
<FilesMatch "\.(eot|ttf|otf|woff|css)$">
Header add Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>

为什么会这样

$.get('https://www.sarahlawrence.edu/_assets/v6/fonts/otama-text-regular/otamatextregular.eot')`

有效(在任何域的控制台中尝试),而

$.get('https://www.sarahlawrence.edu/_assets/v6/lib/icons.data.svg.css')

失败并出现此错误:

XMLHttpRequest cannot load https://www.sarahlawrence.edu/_assets/v6/lib/icons.data.svg.css. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://whatever.com' is therefore not allowed access.

我怎样才能让它工作?

最佳答案

可以使用 curl 确认丢失的 Header:

 curl -v https://www.sarahlawrence.edu/_assets/v6/fonts/otama-text-regular/otamatextregular.eot > delme.txt

curl -v https://www.sarahlawrence.edu/_assets/v6/lib/icons.data.svg.css > delme.txt

正则表达式应该对文件名感到满意,所以我认为问题是因为 apache 配置中某处存在配置冲突。另一个诊断检查是将失败的文件复制到字体目录中并检查 header 是否存在 - 这将确认正则表达式或文件名不是问题,但表明它与目录配置相关。

您已声明在文档根目录或子文档中没有其他 .htaccess 文件(这可能会导致问题)并且正在提供没有 header 的文件。

现阶段我的感觉是,这可能与您的 mod_pagespeed 有关,它对 lib/icons 禁用。它甚至可以归结为正在加载的模块的顺序。

通常我会先重启你的apache以防万一。两者之间的任何缓存或代理基础设施都应该被禁用。接下来我将禁用 mod_pagespeed 并查看问题是否仍然存在。

我还会检查您的 httpd.conf 或虚拟主机配置中是否有类似的配置 block ,因为这可能会捕获某些目录而不是其他目录,并且您的 .htaccess 不会做预期的事情。作为进一步检查,我会尝试删除或临时重命名 .htaccess(更改为 htaccess-removed 或类似名称)以确认不再使用 curl 或其他方法来验证 CORS header 来包含 URL 请求 header 。

可能不相关,但我要检查的另一件事是文件和目录的权限和所有权 - 值得一提以防万一。

还值得检查有关重新启动 apache 和发出请求的错误日志,因为这可能会提供进一步的见解。

关于javascript - 为什么这个简单的 CORS GET 会失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37436274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com