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

时间:2020-02-25 18:07:53

标签: ajax drupal xmlhttprequest 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视图,而不是实际目录中的静态文件。

2 个答案:

答案 0 :(得分:-1)

这看起来像是典型的情况,您的浏览器将先前的OPTIONS请求的响应缓存到先前请求的特定URL,该标头以前不存在,并且浏览器不会费心检查直到TTL过期。 / p>

我会说:检查标题是否存在,即从您的命令行执行详细的curl请求。

curl -v https://yourhost/yourURL

然后您可以从那里拿走

答案 1 :(得分:-1)

您应该尝试:

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