【问题标题】:Access-Control-Allow-Origin and www subdomainAccess-Control-Allow-Origin 和 www 子域
【发布时间】:2011-07-28 16:43:31
【问题描述】:

我在使用 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 非 www.domain.com 不是 允许 访问控制允许来源。

你如何处理这个问题?我看过很多关于如何处理进行这些 AJAX 调用的不同子域的帖子,但我觉得这是不同的。这是同一个站点,但有些人可能会选择使用 www.domain.com,而有些人可能会选择仅使用 domain.com

【问题讨论】:

    标签: jquery codeigniter access-control


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      感谢@serg。我最终按照您的建议做了,但恰恰相反(将所有 www 重定向到非 www)。我还发现了与您提供的代码类似的代码,但它更通用,所以当我想重用它时不必更改域名:

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

      【讨论】:

        猜你喜欢
        • 2016-09-30
        • 1970-01-01
        • 2016-08-03
        • 2013-10-28
        • 2014-03-24
        • 2013-11-23
        • 2017-06-15
        • 2012-12-09
        相关资源
        最近更新 更多