一周前,我遇到了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视图,而不是实际目录中的静态文件。
答案 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>