我遇到了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调用的。这导致错误:
Origin nonwww.domain.com不是 允许的 访问控制允许来源。
你如何处理这个问题?我已经看过很多关于如何处理这些AJAX调用的不同子域的帖子,但我觉得这是不同的。这是相同的网站,但有些人可能会选择使用 www.domain.com ,有些人可能会选择只使用 domain.com 。
答案 0 :(得分:0)
我建议您一劳永逸地选择是否需要www
在您的网站前,然后相应地设置apache重定向,这将为您节省很多麻烦:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]
(这会将非www请求重定向到www)
答案 1 :(得分:0)
谢谢@serg。我最终做了你的建议,但只是反过来(重定向所有www到非www)。我也发现了与你提供的代码类似的代码,但它更通用,所以当我想重用它时,我不必更改域名:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]