【发布时间】:2017-07-04 04:22:06
【问题描述】:
我正在构建一个基于 ArcGis Server 的 GIS Web 应用程序,但我在使用 Firefox 浏览器时遇到了问题。 我正在用 JS 开发一个允许用户编辑要素图层的 GIS Web 应用程序(注意:在没有 ESRI ArcGis API for JS 的情况下调用 ArcGis)。
在 ArcGIS Server 中创建新记录的 HTTP POST 请求如下: http://server/arcgis/rest/services/layerName/FeatureServer/0/addFeatures
正如文档所述 (http://resources.arcgis.com/en/help/rest/apiref/fsadd.html),可以执行的操作 永久更改系统状态(添加、更新、删除)是仅 POST 操作。否则,将向客户端发送错误代码为 405(不允许方法)的相应错误消息。
在 Chrome 和 IE 中,为了运行这个 POST 请求并避免 CORS 问题,我使用了代理。 相反,Firefox 为了确定实际请求是否可以安全发送,首先“预检”POST 请求,通过 OPTIONS 方法向另一个域上的资源发送 HTTP 请求。
因此考虑到 ArcGIS Server 只接受 POST 请求来添加要素,并且考虑到 Firefox 首先发送一个 OPTIONS 方法,我在使用 Firefox 编辑要素图层时遇到了问题。 其实就是下面的请求:
server/arcgis/rest/services/layerName/FeatureServer/0/addFeatures
返回错误代码 405(不允许的方法)。
是否有解决此问题的解决方法或方法?特别是考虑到也许有一天,其他浏览器可能会出于安全原因执行此 OPTIONS 请求。
【问题讨论】:
-
如果您使用的是 JS API,这可能会得到处理,但既然您没有,这更像是一个纯 IT 问题,在 StackOverflow 上可能会更好地解决。
-
问题似乎出在 arcgis 服务器上,所以 mne 与 GIS 相关
-
其他 Access-Control-Allow-Origin: *,什么作为 Access-Control-Allow-Methods 和 Access-Control-Allow-Headers 传递?
标签: firefox http-post esri arcgis-server preflight