序言:我正在嘗試將一個(gè)圖層拉入我的 arcgis-js-api 應(yīng)用程序中,但我遇到了困難。該層在這里:https://maps.disasters.nasa.gov/ags04/rest/services/ca_fires_202008/sentinel2/MapServer我正在嘗試以這種方式添加它:export const SC2Sept29 = new MapImageLayer({
url:
'https://maps.disasters.nasa.gov/ags04/rest/services/ca_fires_202008/sentinel2/MapServer/547',
});運(yùn)行我的應(yīng)用程序時(shí),我收到經(jīng)典的 CORS 錯(cuò)誤從源“https://cdpn.io”獲取“https://maps.disasters.nasa.gov/ags04/rest/services/ca_fires_202008/sentinel2/MapServer?f=json”的訪問已被 CORS 策略阻止:請(qǐng)求的資源上不存在“Access-Control-Allow-Origin”標(biāo)頭。如果不透明響應(yīng)滿足您的需求,請(qǐng)將請(qǐng)求模式設(shè)置為“no-cors”以在禁用 CORS 的情況下獲取資源。這是來自此 codepen ,但使用vscode live server或 webpack-dev-server進(jìn)行本地開發(fā)時(shí)也會(huì)發(fā)生同樣的情況。其他圖層不會(huì)發(fā)生這種情況,僅來自maps.disasters.nasa.gov 服務(wù)器上的圖層會(huì)發(fā)生這種情況。嘗試設(shè)置代理當(dāng)我嘗試訪問 NASA 層時(shí),我從線程 CORS 錯(cuò)誤中得到了一些建議,我需要為來自該服務(wù)器的任何內(nèi)容設(shè)置代理。他們的建議是按照這些說明設(shè)置代理,并使用 arcgis 的現(xiàn)成代理之一。就我個(gè)人而言,我發(fā)現(xiàn)缺少代理存儲(chǔ)庫的說明。我設(shè)置服務(wù)器端應(yīng)用程序的所有經(jīng)驗(yàn)都是使用 Nodejs,但我不理解如何執(zhí)行此操作的說明。我現(xiàn)在鏈接的 codepen 嘗試在任何地方使用 CORS 代理,但將其設(shè)置在esr/core/urlUtils:urlUtils.addProxyRule({ urlPrefix: 'maps.disasters.nasa.gov', proxyUrl: 'https://cors-anywhere.herokuapp.com',});但這給出了一個(gè)錯(cuò)誤,指出Unexpected token T in JSON at position 0. 我可以在網(wǎng)絡(luò)選項(xiàng)卡中看到瀏覽器確實(shí)正在嘗試訪問正確的層 URL,并正確地以 cors Anywhere 代理 URL 為前綴。但響應(yīng)本身只是 cors Anywhere 代理的文本,因此出現(xiàn)錯(cuò)誤:正如我提到的,我的開發(fā)環(huán)境是 vscode live 服務(wù)器和 webpack 開發(fā)服務(wù)器,具體取決于我構(gòu)建的應(yīng)用程序的哪個(gè)部分。我的目標(biāo)生產(chǎn)環(huán)境是 github 頁面 - 我真的沒想到這個(gè)應(yīng)用程序需要后端。如果我需要服務(wù)器端來提供代理,我可以將其作為完整堆棧應(yīng)用程序托管在 Heroku 甚至 AWS 上。當(dāng)嘗試使用預(yù)先提供的 arcgis 代理時(shí),我遇到了同樣的問題。例如,我將他們的代理存儲(chǔ)庫克隆到我的目錄中:當(dāng)配置urlUtils為引用這些代理之一時(shí),它會(huì)這樣做,但只返回代理文件的文本內(nèi)容并給出錯(cuò)誤Unexpected token T in JSON at position 0。esri 論壇上有很多關(guān)于 IIS 的討論,但我是一名 Mac 用戶,對(duì)此沒有任何經(jīng)驗(yàn)。Esri 提供 .NET、java 或 PHP 代理,但我沒有這方面的經(jīng)驗(yàn)。我怎樣才能擺脫這些 cors 錯(cuò)誤并正確地將層從 nasa 服務(wù)器拉到我的應(yīng)用程序中。如果我需要代理,如何設(shè)置一個(gè)既適用于我的開發(fā)環(huán)境又適用于生產(chǎn)環(huán)境的代理?我很難找到適合我這種情況的教程。謝謝閱讀。
設(shè)置代理來處理 arcgis js api 的 CORS
有只小跳蛙
2023-09-07 17:07:40