gpt4 book ai didi

firefox - ArcGIS Server REST API - POST OPTIONS 预检请求 : 405 Method not allowed

转载 作者:行者123 更新时间:2023-12-02 03:06:44 29 4
gpt4 key购买 nike

我正在构建一个基于 ArcGis Server 的 GIS web 应用程序,但我在使用 Firefox 浏览器时遇到问题。我正在用 JS 开发一个 GIS 网络应用程序,它允许用户编辑要素层(注意:调用 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-only 操作。否则,将向客户端发送错误代码为 405(方法不允许)的适当错误消息。

在 Chrome 和 IE 中,为了运行此 POST 请求并避免 CORS 问题,我使用了代理。Firefox 相反,为了确定实际请求是否可以安全发送,首先“预检”POST 请求,通过 OPTIONS 方法向其他域上的资源发送 HTTP 请求。

因此,考虑到 ArcGIS Server 仅接受添加要素的 POST 请求,并且考虑到 Firefox 首先发送 OPTIONS 方法,我在使用 Firefox 编辑要素图层时遇到了问题。其实就是下面的请求:

服务器/arcgis/rest/services/layerName/FeatureServer/0/addFeatures

返回错误代码 405(方法不允许)。

是否有解决此问题的解决方法或方法?特别是考虑到也许有一天,出于安全原因,其他浏览器可以实现此 OPTIONS 请求。

最佳答案

有 4 种方法可以解决您的问题,每种方法都取决于您的服务器架构。 (第一种方法只是配置您的服务器,但另一种方法是使用现在支持 .NET、PHP、Java 的 proxy page)。

  1. 如果您可以管理 ArcGIS 服务器。
  2. 如果您可以将代理页面放在与您的网络服务器相同的来源。 (这种方式将通过使用您的服务器向另一台服务器请求来解决问题,并且不再有 CORS 问题。)
    • 只需按照 this 中的步骤操作即可.
  3. 如果您必须将代理页面放在另一个来源,您可以在托管代理页面的服务器上启用 CORS。
  4. 如果您必须将代理页面放在另一个源中,您必须先编辑代理页面以接受并回复预检请求。 (这种方式将允许您的服务器处理预检请求并首先接受它们。)
    • 按照 this 中的步骤进行操作.
    • 完成代理页面设置后,您需要编辑代理页面代码以接受和回复预检请求。请看this .

关于firefox - ArcGIS Server REST API - POST OPTIONS 预检请求 : 405 Method not allowed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42250533/

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