使用Cloudflare的Drupal 7上的CORS Access-Control-Allow-Origin错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Cloudflare的Drupal 7上的CORS Access-Control-Allow-Origin错误相关的知识,希望对你有一定的参考价值。
我们遇到了格式错误的问题。
来自'https://example.com'的字体已被跨源资源共享策略阻止加载:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,'https://www.example.com'原产地不允许进入。
我们还会收到“原始重定向”错误。
我们正在使用Drupal 7和Cloudflare。
我们试图编辑.htaccess来包含
Header set Access-Control-Allow-Origin "https://example.com"
Header set Access-Control-Allow-Origin "https://www.example.com"
尝试了很多;
- 清除了cloudflare
- 重启apache
- 试过通配符“*”
- Drupal CORS模块
到目前为止没有快乐。
由于这种方法不起作用,我想知道是否有错过的东西或者是否存在替代方法,例如为什么我们通过Drupal而不是'https://example.com'获得原点'https://www.example.com'在请求中。
最后请注意,当我查看一些资源时,我会看到两种不同的模式。如果资源在请求标头中的状态为“301 Moved Permanently”,则表示存在
- 主持www.example.com
- Referer https://example.com/
状态为“304 Not Modified”的位置
- 主持example.com
- Referer https://example.com/
奇怪的是,根本没有www; htaccess应该重定向,并且base_url中不存在。
我遇到了一个非常类似的问题。
确保启用模块标头
1 - 要在Apache2(httpd)上启用mod头,您需要运行以下命令:
sudo a2enmod标题
然后重启Apache
sudo service apache2 restart
2 - 要允许所有文件的特定源域的Access-Control-Allow-Origin(CORS)授权,请将其添加到.htaccess中
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin https://example.org
Header set Access-Control-Allow-Origin https://example.com
Header set Access-Control-Allow-Origin https://example.eu
## SECURITY WARNING : never add following line when site is in production
## Header set Access-Control-Allow-Origin "*"
</IfModule>
2 - 要允许特定原始域的Access-Control-Allow-Origin(CORS)授权以及仅在我们的示例中使用字体,请使用.htaccess中的以下部分中的FilesMatch。
<FilesMatch ".(ttf|otf|eot|woff|woff2)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin https://example.org
Header set Access-Control-Allow-Origin https://example.com
Header set Access-Control-Allow-Origin https://example.eu
</IfModule>
</FilesMatch>
在.htaccess文件中进行更改后,无需重新启动apache webserver
以上是关于使用Cloudflare的Drupal 7上的CORS Access-Control-Allow-Origin错误的主要内容,如果未能解决你的问题,请参考以下文章
启用视图自定义模块会导致 Drupal 7 上的 Ajax HTTP 错误
Drupal 7(Un)通过(取消)选择个人资料编辑页面上的分类术语为用户订阅组
如何覆盖Drupal 7上的“禁用JavaScript”页面