當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaScript ArcGIS config.request用法及代碼示例


基本信息

以下是所在類或對象的基本信息。

AMD: require(["esri/config"], (esriConfig) => { /* code goes here */ });

ESM: import esriConfig from "@arcgis/core/config";

對象: esri/config

自從:用於 JavaScript 4.0 的 ArcGIS API

用法說明

config.request函數(或屬性)的定義如下:

request Object


具有控製庫和 Web 服務器之間通信的各個方麵的屬性的對象。

屬性:

類型說明
httpsDomains String[]
可選的

已知支持 https 的域後綴列表。當應用程序不在 http 上運行時,這將自動升級對此類域的請求以使用 https 而不是 http。請注意,端口號不應包含在要匹配的域後綴中。

如果不存在 httpsDomains 列表,API 將使用 https 重定向所有調用。如果該列表存在且未列出所需 http 資源的域,則 API 會發送代碼中指定的 URL。同樣,如果列表存在並且其中列出了所需 http 資源的域,則 API 會向該資源發送 https 請求。

默認情況下,該列表包括以下域後綴:

  • arcgis.com
  • arcgisonline.com
可選的

自從:4.8

允許開發人員在發送之前或之後修改請求。將使用與請求 URL 匹配的第一個攔截器。

例子:

const featureLayerUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/0";

esriConfig.request.interceptors.push({
  // set the `urls` property to the URL of the FeatureLayer so that this
  // interceptor only applies to requests made to the FeatureLayer URL
  urls: featureLayerUrl,
  // use the BeforeInterceptorCallback to check if the query of the
  // FeatureLayer has a maxAllowableOffset property set.
  // if so, then set the maxAllowableOffset to 0
  before: function(params) {
    if (params.requestOptions.query.maxAllowableOffset) {
      params.requestOptions.query.maxAllowableOffset = 0;
    }
  },
  // use the AfterInterceptorCallback to check if `ssl` is set to 'true'
  // on the response to the request, if it's set to 'false', change
  // the value to 'true' before returning the response
  after: function(response) {
    if (!response.ssl) {
      response.ssl = true;
    }
  }
});
maxUrlLength Number
可選的
默認值:2000

request 發出的 HTTP GET 請求的 URL 中允許的最大字符數。如果超出此限製,將使用 HTTP POST 方法。

proxyRules Object[]
可選的

代理規則為一組具有相同 URL 前綴的資源定義代理。使用 esriRequest 時,如果目標 URL 與規則匹配,則請求將被發送到指定的代理。不要直接填充此數組,而是使用urlUtils.addProxyRule() 方法。規則對象具有以下屬性:

規格:
proxyUrl String
可選的

代理的 URL。

urlPrefix String
可選的

需要通過特定代理訪問的資源的 URL 前綴。

proxyUrl String
可選的
默認值:空值

應用程序的資源代理。當與托管在與托管應用程序的域不同的域上的 Web 服務器進行通信時,庫會使用它。

該庫可能會或可能不會使用代理,具體取決於發出的請求類型、服務器是否支持 CORS、應用程序是否在舊版本的瀏覽器上運行等。

您可以從此 GitHub repo 下載代理。

require(["esri/config"], function(esriConfig) {
  esriConfig.request.proxyUrl = "/proxy/Java/proxy.jsp";
});
timeout Number
可選的
默認值:60000

request 等待服務器響應的毫秒數。如果服務器在此時間到期之前未能響應,則認為請求遇到錯誤。

trustedServers String[]
可選的

自從:4.9

指示對關聯服務器發出的跨源請求是否應包括 cookie 和授權標頭等憑據。

require(["esri/config"], function(esriConfig) {
  esriConfig.request.trustedServers.push("[<protocol>//]<hostname>.<domain>[:<port>]");
});
useIdentity Boolean
可選的
默認值:真的

自從:4.5

指示 esri/request 是否將從 IdentityManager 請求憑據。

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 config.request。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。