Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问允许控制源失败,带有www前缀_Javascript_Jquery - Fatal编程技术网

Javascript 访问允许控制源失败,带有www前缀

Javascript 访问允许控制源失败,带有www前缀,javascript,jquery,Javascript,Jquery,我的页面上有一个jquery加载函数,当单击按钮时会触发该函数。url以。。。奇怪的是,当我浏览网页时,我会去。。。de控制台中显示访问允许控制源错误。但是当我去平原的时候。。。当我按下按钮并加载新内容时,一切正常 var loadingOverlay = $('#loadingOverlay'); $(".newsItemTitle").click(function () { loadingOverlay.show(); var $target = $(this);

我的页面上有一个jquery加载函数,当单击按钮时会触发该函数。url以。。。奇怪的是,当我浏览网页时,我会去。。。de控制台中显示访问允许控制源错误。但是当我去平原的时候。。。当我按下按钮并加载新内容时,一切正常

  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);
        }
    });
});

有人知道我如何解决这个问题吗?

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

这是意料之中的<代码>http://www.example.com和
http://example.com
是不同的来源

有几种方法可以解决此问题

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

  • 您是否尝试将绝对路径添加到$url变量(而不是相对路径)中?