gpt4 book ai didi

javascript - 如何使用 dojo/store/JsonRest 工作 ArcGIS Rest Service

转载 作者:搜寻专家 更新时间:2023-11-01 04:17:03 27 4
gpt4 key购买 nike

我在尝试连接到提供 Arcgis Javascript API docs 的示例休息服务时收到以下错误.

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://bcgphp' is therefore not allowed access.

dojo docs 之后我已按如下方式设置我的 dojo/store。

var jsonStore = new JsonRest({
target: "//sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/"
});

jsonStore.get(5);

我也试过根据 dojo docs 传递一些 header ,返回与上述代码相同的错误。

var jsonStore = new JsonRest({
target: "//sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/",
headers: {'X-Requested-With': 'XMLHttpRequest'}
});

jsonStore.get(5);

当我使用 Arcgis Javascript 进行查询时,我可以使用此 demo 中提供的以下代码发出此请求这不会导致任何跨域问题。

var queryTask = new QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5");

var query = new Query();
query.returnGeometry = false;
query.outFields = [
"SQMI", "STATE_NAME", "STATE_FIPS", "SUB_REGION", "STATE_ABBR",
"POP2000", "POP2007", "POP00_SQMI", "POP07_SQMI", "HOUSEHOLDS",
"MALES", "FEMALES", "WHITE", "BLACK", "AMERI_ES", "ASIAN", "OTHER",
"HISPANIC", "AGE_UNDER5", "AGE_5_17", "AGE_18_21", "AGE_22_29",
"AGE_30_39", "AGE_40_49", "AGE_50_64", "AGE_65_UP"
];


queryTask.execute(query, showResults);

function showResults (results) {
console.log(results);
}

如果可能的话,我真的很想使用 dojo.store,这样我就可以使用 MVC technique 构建我的应用程序道场提供

最佳答案

dojo/store/JsonRest 希望服务器遵守特定的协议(protocol),但 ArcGIS 服务有自己的 own specification .请参阅 JsonRest docs 的实现 REST 服务器部分.因此,无论任何 CORS 问题如何,我认为都不可能将 dojo/store/JsonRest 指向 ArcGIS Online 服务,而无需将其包装在遵循 JsonRest 存储协议(protocol)的某些 RESTful 服务中期待。

根据您服务中记录的数量以及您需要多久回写一次服务器,您可以尝试将所有需要的记录拉入 dojo/store/Memory 存储页面加载时的 QueryTask。我曾参与过一个项目,我们成功地使用了该技术。

关于javascript - 如何使用 dojo/store/JsonRest 工作 ArcGIS Rest Service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23546902/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com