Tzo*_*Noy 117 .htaccess cross-domain cors
我正在创建一个在其他网站上外部加载的脚本.它加载CSS和HTML,并在我自己的服务器上正常工作.
但是,当我在另一个网站上尝试它时,它会显示这个可怕的错误:
Access-Control-Allow-Origin
Run Code Online (Sandbox Code Playgroud)
在这里你可以看到它完美加载: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>
Run Code Online (Sandbox Code Playgroud)
或者像这样:
Header set Access-Control-Allow-Origin *
Run Code Online (Sandbox Code Playgroud)
但它仍然无效.
小智 233
在外部根文件夹的.htaccess中尝试此操作:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
Run Code Online (Sandbox Code Playgroud)
如果它只涉及.js脚本,你应该在上面包含上面的代码:
<FilesMatch "\.(js)$">
...
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
Luk*_*kas 48
没有人说你还必须启用mod_headers,所以如果仍然无法正常工作,请尝试以下方法:
(以下提示适用于Ubuntu,不了解其他发行版)
你可以检查加载的模块列表
apache2ctl -M
Run Code Online (Sandbox Code Playgroud)
启用mod_headers你可以使用
a2enmod headers
Run Code Online (Sandbox Code Playgroud)
当然,在Apache发生任何变化之后你必须重新启动它:
/etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)
然后你可以使用
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
Run Code Online (Sandbox Code Playgroud)
如果mod_headers未激活,则此行将不执行任何操作.您可以尝试跳过if子句,只需添加Header set Access-Control-Allow-Origin "*"
配置,如果mod_headers未激活,它应该在启动时抛出错误.
vkn*_*yvz 29
根据我的经验;
如果它不起作用php
,.htaccess
那么它对我有用
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin http://www.vknyvz.com
Header set Access-Control-Allow-Credentials true
</IfModule>
Run Code Online (Sandbox Code Playgroud)
Tho*_*man 11
.htaccess
如果访问字体时出现问题,请将包含以下指令的文件添加到fonts文件夹中.可以轻松修改以与.css或.js文件一起使用.
<FilesMatch "\.(eot|ttf|otf|woff)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
顺便说一句:.htaccess 配置必须在托管 API 的服务器上完成。例如,您在 x.com 域上创建一个 AngularJS 应用程序并在 y.com 上创建一个 Rest API,您应该在 y.com 根文件夹而不是 x 的根文件夹上的 .htaccess 文件中设置 Access-Control-Allow-Origin "*" .com :)
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
Run Code Online (Sandbox Code Playgroud)
另外,正如 Lukas 提到的,如果您使用 Apache,请确保您已启用 mod_headers
小智 7
在Zend Framework 2.0中我遇到了这个问题.可以通过两种方式解决.htaccess或php header我更喜欢.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]
Run Code Online (Sandbox Code Playgroud)
至
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]
Run Code Online (Sandbox Code Playgroud)
它开始起作用了
其他答案对我不起作用,这就是为apache2做的诀窍:
1)启用头文件mod:
sudo a2enmod headers
2)创建/etc/apache2/mods-enabled/headers.conf
文件并插入:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
Run Code Online (Sandbox Code Playgroud)
3)重启服务器:
sudo service apache2 restart
归档时间: |
|
查看次数: |
284947 次 |
最近记录: |