htaccess Access-Control-Allow-Origin
htaccess Access-Control-Allow-Origin
我正在创建一个在其他网站上外部加载的脚本。它可以加载CSS和HTML,并且在我的服务器上运行良好。然而,当我尝试在其他网站上使用时,会显示这个糟糕的错误:Access-Control-Allow-Origin
。您可以在这里看到它完美加载:http://tzook.info/bot/。但在这个其他网站上显示错误:http://cantloseweight.co/robot/。我将加载脚本上传到了jsfiddle:http://jsfiddle.net/TL5LK/。我尝试像这样编辑htaccess文件:
Header set Access-Control-Allow-Origin *
或者像这样:Header set Access-Control-Allow-Origin *
但仍然无法正常工作。
.htaccess文件是一种用于配置Apache服务器的文件,它可以用来设置许多不同的服务器参数和规则。在这个情况下,问题是关于.htaccess文件中的Access-Control-Allow-Origin参数。
问题的出现原因可能是当在PHP中设置Access-Control-Allow-Origin参数时无效。为了解决这个问题,可以尝试在.htaccess文件中进行设置。
解决方法如下所示:
Header set Access-Control-Allow-Origin http://www.vknyvz.com Header set Access-Control-Allow-Credentials true
其中,Access-Control-Allow-Origin参数设置为http://www.vknyvz.com,表示允许来自该域名的请求访问资源。Access-Control-Allow-Credentials参数设置为true,表示允许跨域请求携带cookie等凭证信息。
这种方法可能并不适用于所有情况,但可以尝试使用类似的原则在PHP中进行设置,以解决Access-Control-Allow-Origin问题。
.htaccess中的Access-Control-Allow-Origin问题的出现原因是mod_headers模块未启用。解决方法是启用mod_headers模块,并在.htaccess中添加以下代码:<IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" </IfModule>
。如果mod_headers模块未激活,上述代码将不起作用。可以尝试跳过if子句,直接在配置文件中添加Header set Access-Control-Allow-Origin "*"
,如果mod_headers模块未激活,启动时会抛出错误。
.htaccess文件用于配置Apache服务器的一些规则和设置。在这个问题中,我们想要实现跨域资源共享(CORS),即允许不同域名下的网页访问特定资源。
在给出的代码中,我们通过在.htaccess文件中添加以下代码来设置Access-Control-Allow-Origin头部信息:
Header set Access-Control-Allow-Origin "*"
如果只想针对.js文件生效,可以将上述代码包裹在以下代码块中:
...
上述代码中的*
表示允许任何来源的域名访问该资源。它不是资源列表,而是引用域名的列表。
在应用了上述代码后,如果仍然无法访问.json文件,可能需要启用headers模块。可以使用以下命令启用headers模块:
a2enmod headers
另外,如果动态地使用access-control-allow-origin(根据请求的来源更改URL值),而不是使用*
,还需要包含头部信息Vary: Origin
。
以上就是关于.htaccess文件中Access-Control-Allow-Origin问题的原因和解决方法的总结。