有没有人真正知道如何解决这些错误?

时间:2015-12-01 23:30:01

标签: javascript

有谁知道如何处理这些错误?我是Javascript的新手,我正在尝试为esri学习一些api的东西。老实说,我不明白这些错误意味着什么,或者如何修复它们。以下是错误:

XMLHttpRequest cannot load file://www.arcgis.com/sharing/rest/content/items/b3c3566f3e1c4b6b8035185fba217f54?f=json. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.

q {message: "Unable to load file://www.arcgis.com/sharing/rest/…b3c3566f3e1c4b6b8035185fba217f54?f=json status: 0", response: Object, status: 0, responseText: "", xhr: XMLHttpRequest…}

以下是制作它们的代码。

<!doctype html>
<html>
    <head>
        <title>Create a Web Map</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">

        <link rel="stylesheet" type="text/css" href="http://js.arcgis.com/3.14/esri/css/esri.css">
        <style>
            html, body, #mapDiv, .map.container{
                padding: 0;
                margin: 0;
                height: 100%;
            }
        </style>

        <script>var dojoConfig = { parseOnLoad:true };</script>
        <!--<script> Access-Control-Allow-Origin: null </script> perhaps this could be part of a solution-->
        <script src="http://js.arcgis.com/3.14compact/"></script>
        <script>
            var map;
            require([
                "esri/map",
                "esri/arcgis/utils",
                "dojo/domReady!"
                ], function(Map, arcgisUtils){
                arcgisUtils.createMap( "b3c3566f3e1c4b6b8035185fba217f54", "mapDiv").then(function (response) {
                    map = response.map;
                });
            });
        </script>
    </head>

    <body>
        <div id="mapDiv"></div>
    </body>
</html>

任何帮助都会很棒。我不得不说我现在完全迷失了。

1 个答案:

答案 0 :(得分:5)

查看网址:

file://www.arcgis.com/.....

AJAX不适用于文件系统。 (无论如何,这也不一定是有效的文件系统路径,它看起来应该是一个网站。)它适用于Web服务器。

据推测,您可以直接从文件系统中打开此HTML文件。而是将其托管在Web服务器(可以是您的本地计算机)上,然后通过HTTP打开它。

您的AJAX请求可能还有其他问题。也许您没有正确指定网址(这里没有足够完整的示例可以确定),或者甚至一旦您向网络服务器发出请求,它可能是一个交叉域名请求。我们真的不知道。但至少,这必须在Web服务器上运行。