CORS在某些目录上被阻止,但在其他目录上没有



一周前,我遇到了一个CORS错误:

Access to XMLHttpRequest at [domainA/example/directory/file.xml] from origin [domainB] has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我通过编辑.htaccess解决了这个问题,添加了:

<IfModule mod_headers.c>
<FilesMatch ".+">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>

成功了!然而,我现在在同一域、不同路径(即"domainA/different/example/directory/file.json"(请求数据时遇到了同样的问题。

我不应该根据对.htaccess的编辑请求任何目录中的任何文件吗?(位于"/…/…/www/[domainA root]/.htaccess"(

值得注意的是,在我的第一个示例中,[domainA/example/directory/file.xml]是Drupal创建的xml视图,而不是实际目录中的静态文件。

这看起来像是一种典型的情况,在这种情况下,浏览器正在缓存先前OPTIONS请求对先前请求的特定URL的响应,标头以前不在那里,浏览器在TTL到期之前不会再检查。

我想说:检查一下,头是否在那里,从你的命令行(即(发出一个冗长的curl请求

curl -v https://yourhost/yourURL

然后你可以从那里拿走

而不是尝试。+在filematch中,您应该尝试:

<FilesMatch ".(htm|html|css|js|php|json)$">
AddDefaultCharset UTF-8
DefaultLanguage en-US
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "*"
</FilesMatch>

相关内容

最新更新