Access-Control-Allow-Origin甚至在同一个域上

时间:2016-04-29 01:30:06

标签: javascript jquery xml

在chrome dev工具中,我收到错误" XMLHttpRequest无法加载https://www.carcraft.atsbusinessandgames.com/xmls/carcraft_1-7-10Test.xml。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' https://carcraft.atsbusinessandgames.com'因此不允许访问。"

当文件位于同一个域时,为什么会出现此错误?

如果您需要它,请使用适用的代码: XML(页面将是空白的右键单击并查看源代码): https://carcraft.atsbusinessandgames.com/xmls/carcraft_1-7-10Test.xml

放入HTML页面的部分:

                <article>
                    <header>

                    </header>

                    <br />
                    <br />

                    <table id="ModsList">
                        <tr style="font-weight: bold;">
                        <td>Mod Name</td>
                        <td>Author(s)</td>
                        <td>Version</td>
                        <td>Date added/updated</td>
                        <td>Description</td>
                        </tr>

                    </table>

                    <script src="https://www.code.jquery.com/jquery-1.8.1.min.js"></script>
                    <script src="/test.js"></script>
                </article>

这是javascript / jquery:

$.ajax({
    url: 'https://www.carcraft.atsbusinessandgames.com/xmls/carcraft_1-7-10Test.xml',
    type: "Get",
    dataType: 'xml',
    success: function (result) {
        $(result).find('Module').each(function() {
             var name = $(this).attr("name");
            var url = $(this).find('url').text();
            var authors = $(this).find('authors').text();
            var version = $(this).find('version').text();
            var date = $(this).find('date').text();
            var description = $(this).find('description').text();
            $("#ModsList").append("<tr>" + "<td>" + "<a href=" + url + ">" + name + "</a>" + "</td>" + "<td>" + authors + "</td>" + "<td>" + version + "</td>" + "<td>" + date + "</td>" + "<td>" + description + "</td>" + "</tr>");
        });
    },
    failure: function() {
    alert("Notify the site owner that the xml file is unreadable.");
    }
});

1 个答案:

答案 0 :(得分:4)

他们不是the same domain。同源策略要求域的完全匹配。一个网址有www.,如果它服务于同一个网站,则基本上会使其成为不同的域名。从您的AJAX调用使用的网址中删除www

https://www.carcraft.atsbusinessandgames.com
https://carcraft.atsbusinessandgames.com