用于地图的简单div容器无法在FF或chrome中正确显示

时间:2012-12-21 13:12:19

标签: javascript dojo cross-browser arcmap

我正在尝试使用ARCGis javascript API和点网核模块内的dojo显示地图。在IE9中,这可以正常工作,但是在firefox和chrome中,地图以屏幕为中心,只有一半可以在div中看到。 div的另一半正确放置了放大和缩小部分,但它只有一半的白色背景。我可以拖动地图来填充该区域,但是一旦我放开它就会滑回到靠近中间的随机点。在其他图层中添加的对象也无法正确呈现。

在chrome中使用调试器我收到以下错误:

XMLHttpRequest cannot load . Origin http://localhost:63579 is not allowed by Access-Control-Allow-Origin.
XMLHttpRequest cannot load http://server.arcgisonline.com/ArcGIS/rest/info?f=json. Origin http://localhost:63579 is not allowed by Access-Control-Allow-Origin.
Resource interpreted as Script but transferred with MIME type text/pl

我在ascx文件中的主要代码如下。

<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.2/js/dojo/dijit/themes/claro/claro.css" />
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.2/js/esri/css/esri.css" />
<link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/3.2/js/dojo/dojox/grid/resources/Grid.css" />

<telerik:RadCodeBlock runat="server" ID="RadScriptBlock1">

<script type="text/javascript">
    djConfig = {
        parseOnLoad: true
    }
</script>

<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=3.2"></script>

<script type="text/javascript">
    dojo.require("esri.map");
    dojo.require("dojox.grid.DataGrid");
    dojo.require("dojo.data.ItemFileReadStore");
    dojo.require("esri.tasks.find");

    var findTask, findParams;
    var map, startExtent;
    var grid, store;

    function init() {
        //dojo.connect(grid, "onRowClick", onRowClickHandler);

        //Create map and add the ArcGIS Online imagery layer
        startExtent = new esri.geometry.Extent({ "xmin": -10981000, "ymin": 4215000, "xmax": -10608000, "ymax": 4361000, "spatialReference": { "wkid": 102100 } });
        map = new esri.Map("mapDiv", { extent: startExtent });

        var streetMapLayer = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer");
        map.addLayer(streetMapLayer); 
        var oilGasLayer = new esri.layers.ArcGISDynamicMapServiceLayer("Layer2"); //
        map.addLayer(oilGasLayer);
 }

        dojo.addOnLoad(init);
</script>
</telerik:RadCodeBlock>

这是容器

<div id="mapDiv" style=" border: 1px solid #000; padding: 0; margin: 0"></div>

到目前为止,我的研究表明我需要在页面加载中处理httpcontext,但这没有做任何事情,并暗示Web服务是问题所在。但是,由于这些服务在所有浏览器的其他页面中的iframe中都很好,我对此持怀疑态度。因为那将是esri的基本地图,所以我怀疑他们的产品有效。

还有一点需要注意,当我使用API​​版本1.6时,这不是问题。

有关为什么会出现行为不端的任何想法?

0 个答案:

没有答案