我正在构建一个基于ArcGis Server的GIS Web应用程序,但我遇到了Firefox浏览器的问题。 我在JS开发了一个GIS Web应用程序,允许用户编辑要素图层(注意:调用ArcGis而不使用ESRI ArcGis API for JS)。
在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问题,我使用代理。 相反,为了确定实际请求是否可以安全发送,首先是预检" POST请求通过OPTIONS方法将HTTP请求发送到另一个域上的资源。
因此,考虑到ArcGIS Server仅接受POST请求以添加功能,并且考虑到Firefox首先发送OPTIONS方法,我在使用Firefox编辑功能层时遇到问题。 实际上,有以下要求:
服务器/ ArcGIS的/休息/服务/ layerName / FeatureServer / 0 / addFeatures
返回错误代码405(不允许使用方法)。
是否有解决此问题的解决方法或方法?特别是考虑到可能有一天,其他浏览器出于安全原因可以实现此OPTIONS请求。
答案 0 :(得分:1)
有四种方法可以解决您的问题,每种方式都取决于您的服务器架构。 (第一种方式只是配置你的服务器,但另一种方法是使用现在支持.NET,PHP,Java的proxy page。
答案 1 :(得分:0)
我不知道为什么,但这在我们的应用程序中有效。
我们的应用是用react编写的,并且依赖于单独的后端API。
除非我们定义了REACT_APP_API_host
和REACT_APP_API_protocol
,否则我们将从ESRI底图中获得这405个。