htaccess的访问控制允许来源(htaccess Access-Control-Allow-Or

2019-06-21 04:46发布

我创建外部加载在其他网站上的脚本。 它加载CSS和HTML和我自己的服务器工作正常。

然而,当我尝试在其他网站上会显示这个可怕的错误:

Access-Control-Allow-Origin

在这里,你可以看到它加载完美: http://tzook.info/bot/

但这其他网站上显示错误: http://cantloseweight.co/robot/

我上传的加载脚本的jsfiddle: http://jsfiddle.net/TL5LK/

我试图编辑这样的htaccess文件:

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

或者是这样的:

Header set Access-Control-Allow-Origin *

但它仍然无法正常工作。

Answer 1:

在外部根文件夹的.htaccess试试这个:

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

如果它只是涉及的.js脚本,你应该换这里面上面的代码:

<FilesMatch "\.(js)$">
...
</FilesMatch>


Answer 2:

没有人说,你还必须有mod_headers中启用,因此,如果仍无法正常工作,试试这个:

(下面的提示在Ubuntu的作品,不知道其他的分布)

你可以检查与加载的模块

apache2ctl -M

让你mod_headers中可以使用

a2enmod headers

当然Apache中的任何改变后必须重新启动它:

/etc/init.d/apache2 restart

然后你可以使用

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

而如果是mod_headers中不活跃,这条线将什么也不做。 你可以尝试跳过的条款,只是添加Header set Access-Control-Allow-Origin "*"在你的配置,那么就应该启动期间抛出错误,如果是mod_headers中不活跃。



Answer 3:

从我的经验;

如果它不从内部运行php做在.htaccess它为我工作

<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin http://www.vknyvz.com  
    Header set Access-Control-Allow-Credentials true
</IfModule>
  • 凭据可以根据你的Ajax请求参数是真的还是假的


Answer 4:

添加.htaccess以下指令文件到您的字体文件夹,如果有问题,访问您的字体。 可以很容易地修改与的.css.js文件使用。

<FilesMatch "\.(eot|ttf|otf|woff)$">
    Header set Access-Control-Allow-Origin "*"
</FilesMatch>


Answer 5:

在Zend框架2.0我有这个问题。 可以通过以下两种方式的.htaccess或php头,我更喜欢的.htaccess,所以我修改的.htaccess从解决:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

RewriteEngine On

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

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

并开始工作



Answer 6:

其他答案没有工作对我来说,这是最终做apache2的诀窍:

1)使能标头MOD:

sudo a2enmod headers

2)创建/etc/apache2/mods-enabled/headers.conf文件,插入:

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

3)重新启动服务器:

sudo service apache2 restart



Answer 7:

BTW:在的.htaccess配置必须托管API的服务器上完成。 例如,您创建x.com域的AngularJS应用程序,并创建一个y.com REST API,你应该设置访问控制允许来源“*”在y.com的根文件夹中的.htaccess文件不是X .COM :)

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

另外,作为卢卡斯提到的化妆肯定,如果你使用Apache已mod_headers中启用



Answer 8:

确保你没有重定向发生。 如果不包含在URL尾部斜杠就会发生这种情况。

看到这个答案的更详细- https://stackoverflow.com/a/27872891/614524



文章来源: htaccess Access-Control-Allow-Origin