1. 程式人生 > >ArcGIS JS預設你的Web伺服器支援CORS了!!!!

ArcGIS JS預設你的Web伺服器支援CORS了!!!!

 其實這個更新已經不算新了,現在ArcGIS API for JavaScript 已經推出4.10版本了。真的好快,快學不動了。

在這裡插入圖片描述
 但是我覺著這個變化還是有必要說一下滴~。ArcGIS API for JavaScript 一直支援CORS,如果你的Web伺服器支援CORS的話,那就不需要代理來執行跨域請求。

 另外如果你一直使用的代理的話,那這篇文章你就看看得了,它對你原來的應用程式沒有多大影響。

一、CORS和WebGL

ArcGIS JS 現在已經使用WebGL了,它和SVG渲染的方式有所不同。當載入影象(例如PictureMarkerSymbol使用的影象)時,SVG只是在DOM中新增影象,而在WebGL的canvas上繪圖則需要訪問原始影象資料。因此就需要滿足以下要求:
(1)與應用程式位於同一域中, (2)託管在支援CORS的伺服器上 (3)必須使用代理。

二、4.9以前的處理方式

  • 通過corsEnabledServers列表, 以指示是否為給定伺服器設定了CORS;

在這裡插入圖片描述

在這裡插入圖片描述

  • 如果伺服器不支援CORS,則可以配置代理規則;
  • 當不知道伺服器支援CORS並且請求是JSON的GET請求時,JSONP被用作解決方法。

三、4.9處理CORS的變化

API預設你的Web伺服器是支援CORS的。
  • 如果程式碼中使用了代理,那麼還是通過代理,沒有影響。
  • 如果你的Web伺服器不支援的話,就需要解決跨域訪問問題了。tomcat的IIS的方式網上都有,大家可以去搜一下。

    如有需求,可以留言,抽空抽空抽空我就整理一下-。-

    在這裡插入圖片描述

四、補充

  • 如果以前使用類似以下API,可以給刪了,它們已經沒有用了;

  esri/config.request

   corsDetection

   corsDetectionTimeout

   corsEnabledServers*

    forceProxy

   useCors
  esri/request
   allowImageDataAccess option

  • 4.9還刪除了對JSONP的支援,這將簡化webpack構建。
    在這裡插入圖片描述

更多GIS知識請關注微信公眾號:GIS小鎮。

在這裡插入圖片描述