XMLHttpRequest无法加载到同一个域

时间:2015-07-23 19:07:49

标签: javascript ajax

XMLHttpRequest cannot load http://www.example.com/scripts/php/sendDispatch.php. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://example.com' is therefore not allowed access.

这是在同一个域上而不是单独的域。所有“可能重复”都处理了具有不同域名的问题。

我在Chrome中遇到此错误。我的理解是,当尝试访问另一个域上的文件时,通常会发生此类事情。可能有什么不对?

的Ajax:

 var frm = $('#dispatchForm');
    frm.submit(function (ev) {
        $.ajax({
            type: frm.attr('method'),
            url: frm.attr('action'),
            data: frm.serialize(),
            success: function (data) {
                notif({
                type: "success",
                msg: "<b>Success: </b>Your request has been submitted.",
                position: "center",
                width: 500,
                height: 60,
                autohide: false
            });
                $(frm)[0].reset();
            }
        });

        ev.preventDefault();
    });

2 个答案:

答案 0 :(得分:0)

要成为同源,端口主机名方案必须匹配。

www.example.comexample.com不是同一个主机名,即使其中一个是另一个的子域名。

通常认为选择www.example.comexample.com之一作为您网站的规范名称,并将所有非规范请求重定向到规范名称是明智的。

这可以与 relative URI结合使用以避免此问题。

答案 1 :(得分:0)

在此处添加答案,以便您可以将其标记为正确,如果它已为您修复..正如其他人指出的那样,www与非www匹配:

  

从请求中删除www,或者根据子域

添加一些逻辑来构建链接