Access-Control-Allow-Origin and www subdomain



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

原点非www.domain.com不是所允许的Access-Control-Allow-Origin .

你如何处理这个问题?我看过很多关于如何处理不同子域进行这些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]

最新更新