ArcGIS JS預設你的Web伺服器支援CORS了!!!!
阿新 • • 發佈:2018-12-28
其實這個更新已經不算新了,現在ArcGIS API for JavaScript 已經推出4.10版本了。真的好快,快學不動了。
(1)與應用程式位於同一域中,
(2)託管在支援CORS的伺服器上
(3)必須使用代理。
但是我覺著這個變化還是有必要說一下滴~。ArcGIS API for JavaScript 一直支援CORS,如果你的Web伺服器支援CORS的話,那就不需要代理來執行跨域請求。
另外如果你一直使用的代理的話,那這篇文章你就看看得了,它對你原來的應用程式沒有多大影響。
一、CORS和WebGL
ArcGIS JS 現在已經使用WebGL了,它和SVG渲染的方式有所不同。當載入影象(例如PictureMarkerSymbol使用的影象)時,SVG只是在DOM中新增影象,而在WebGL的canvas上繪圖則需要訪問原始影象資料。因此就需要滿足以下要求:二、4.9以前的處理方式
- 通過corsEnabledServers列表, 以指示是否為給定伺服器設定了CORS;
- 如果服務是使用ArcGIS Server釋出的,則API會自動傳送請求以檢視是否支援CORS。可以開啟自己的server看一下(地址:http://localhost:6080/arcgis/admin);
- 如果伺服器不支援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構建。