我正在尝试使用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时,这不是问题。
有关为什么会出现行为不端的任何想法?