我正在构建一个基于ArcGis服务器的GIS应用程序,但我在Firefox浏览器上遇到了一个问题。我正在JS中开发一个GIS应用程序,它允许用户编辑要素图层(注意:在没有ESRI ArcGis API for JS的情况下调用ArcGis )。
在ArcGIS服务器中创建新记录的HTTP POST请求如下:http://server/arcgis/rest/services/layerName/FeatureServer/0/addFeatures
正如文档所述(http://resources.arcgis.com/en/help/rest/apiref/fsadd.html),可以永久更改系统状态的操作(添加、更新、删除)是POST-only操作。否则,将向客户端发送相应的错误消息,错误代码为405 (不允许使用方法)。
在Chrome和IE中,为了运行这个POST请求并避免CORS问题,我使用了一个代理。相反,为了确定实际请求是否可以安全发送,首先“预检”POST请求通过OPTIONS方法将HTTP请求发送到另一个域上的资源。
因此,考虑到Firefox只接受POST请求来添加功能,并且考虑到ArcGIS首先发送一个OPTIONS方法,我在使用Firefox编辑要素层时遇到了问题。实际上,以下请求:
server/arcgis/rest/services/layerName/FeatureServer/0/addFeatures
返回错误码405 (不允许使用方法)。
是否有解决此问题的变通方法或方法?特别是考虑到也许有一天,出于安全原因,其他浏览器可以实现此OPTIONS请求。
发布于 2017-05-08 13:46:35
有4种方法可以解决您的问题,每种方法都取决于您的服务器架构。(第一种方法是配置您的服务器,但另一种方法是使用现在支持.NET、PHP、Java的proxy page )。
如果您可以将代理页面放在与您的web服务器相同的源位置,请使用
中的步骤即可
如果必须将代理页面放在另一个源中,并且可以在托管代理页面的服务器上启用CORS,则使用
中的步骤操作
发布于 2020-06-24 08:29:59
我不知道为什么,但这在我们的应用中起作用了。
我们的应用程序是用react编写的,并且依赖于一个独立的后端API。
除非我们定义了REACT_APP_API_host
和REACT_APP_API_protocol
,否则我们从ESRI底图中获取这些405。
https://stackoverflow.com/questions/42250533
复制相似问题