访问允许控件来源失败,带有www前缀

时间:2016-02-01 14:33:19

标签: javascript jquery

我的页面上有一个jquery加载函数,当单击一个按钮时会触发该函数。该网址以http://domain.com/开头...当我通过转到http://www(dot)domain(dot)com/浏览到该页面时非常奇怪...访问允许控件原始错误显示在de控制台中。但是当我去普通http://domain(dot)com/时...当我按下按钮并且新内容被加载时,一切正常。

  var loadingOverlay = $('#loadingOverlay');

$(".newsItemTitle").click(function () {
    loadingOverlay.show();
    var $target = $(this);
    $url = "include/getFunction.php?json=1&param=" + $(this).data("id") + "&function=getMainPageContent";
    $.ajax({
        url: $url,
        success: function (html) {
            $(".newsItemTitle").each(function () {
                $(this).removeClass("active");
            });

            $target.addClass("active");
            var text = $.parseJSON(html)['text'];

            $(".js-content").empty().append(text);
            window.setTimeout(function () {
                loadingOverlay.hide();

                $('html, body').animate({
                    scrollTop: $('.js-content-title').offset().top - 80
                }, 'slow');
            }, 500);
        }
    });
});

有谁知道如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

交叉对象资源共享会发生此类错误。在启用了CORS的服务器上,服务器将使用AJAX连接识别哪些域名有权访问数据,并且javascript安全模型将子域视为CORS下的不同站点。我会检查以确保CORS尚未设置为仅支持domain.com,如果它然后添加www.domain.com作为授权。如果您使用支持CORS的Web主机,您的托管服务提供商可能会提供帮助。

答案 1 :(得分:0)

这是预期的。 http://www.example.comhttp://example.com起源不同。

有几种方法可以解决这个问题。

  1. 不要在两个不同的主机名上托管您的网站。选择其中一个为规范,并从另一个重定向到它。
  2. 始终使用相对URL,以便将Ajax请求发送到同一个源
  3. 配置服务器以发送Access-Control-Allow-Origin标头,以便两个来源可以共享内容