2011-04-03 57 views
1

我遇到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子域名

Origin non-www.domain.com is not allowed by Access-Control-Allow-Origin.

你如何處理這個問題?我見過很多關於如何處理這些AJAX調用的不同子域的帖子,但我覺得這是不同的。這是同一網站,但有些人可能會選擇使用www.domain.com,有些人可能會選擇僅使用domain.com

回答

0

我建議你選擇一勞永逸您是否想www在您的網站的前面,然後安裝apache的相應重定向,這會爲您節省大量的頭痛:

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

(此重定向非WWW請求www)

0

謝謝@serg。我最終做了你的建議,但只是相反(將所有www重定向到非www)。我也發現了與您提供的代碼類似的代碼,但它更通用,所以我不需要在重新使用域名時更改域名:

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