繁体   English   中英

Access-Control-Allow-Origin和www子域

[英]Access-Control-Allow-Origin and www subdomain

我在使用Access-Control-Allow-Origin时遇到麻烦。 我正在使用CodeIgniter(CI)和jQuery进行jQuery.getJSON()调用。 我使用CI URL调用jQuery.getJSON()。 我在CI配置中的基本URL在域名中包含www(www.domain.com)。 当我访问该网站时,我没有使用www(domain.com)。 因此,当进行jQuery.getJSON()调用时,它使用www url,但从非www url进行调用。 这导致错误:

Access-Control-Allow-Origin不允许使用来源非www.domain.com。

您如何处理这个问题? 我已经看到很多关于如何处理这些AJAX调用的不同子域的文章,但是我觉得这是不同的。 这是同一网站,但是有些人可能选择使用www.domain.com ,而有些人可能选择仅使用domain.com

我建议您一劳永逸地选择是否要在站点前使用www ,然后相应地设置apache重定向,这将为您节省很多麻烦:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L] 

(这会将非www请求重定向到www)

谢谢@serg。 我最终做了您建议的事情,但只是相反(将所有www重定向为非www)。 我还发现了与您提供的代码类似的代码,但是它更通用,因此当我想重用它时不必更改域名:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM