我是 React 的初學(xué)者(以及一般的前端)。我剛剛在 Java 上做了一個(gè)完整的 API,我想問(wèn)你們,在 React 的 .jsx 上告訴 fetch() 函數(shù)的正確內(nèi)容是什么后端 URL,我目前將它燒毀在一個(gè)常量上,但我認(rèn)為必須存在一種更優(yōu)雅的方式來(lái)做到這一點(diǎn)。感謝您的幫助,祝您編碼愉快。編輯:為了澄清我的意思,這是我擁有的一些示例代碼:在后端,我有一個(gè)這樣的restfull服務(wù):@CrossOrigin(origins = "http://localhost:3000")@RequestMapping("/recursosTotales")public List<Recurso> recursosTotales(){ ConectorBd conectorBd =new ConectorBd(); conectorBd.start(); return conectorBd.recursoList();}在前面,我有一個(gè) fetch 調(diào)用像這樣的 restfull 服務(wù):fetch("http://localhost:8090/recursosTotales") .then(response => response.json()) .then(response => { this.setState({ products: response }); });正如你們所看到的,后端的 URL 被燒毀,我想知道的是我如何制作某種全局變量,以防萬(wàn)一我必須更改服務(wù)器 URL,只在一個(gè)地方更改它。我嘗試使用 dotenv 庫(kù),但對(duì)于我讀到的內(nèi)容,process.env 不適用于 .jsx 文件,因?yàn)樗鼈兪菓?yīng)用程序客戶端的一部分,而 env 僅適用于服務(wù)器端。我不能完全理解這個(gè)原則。無(wú)論如何,我希望我讓我的問(wèn)題更清楚。并感謝所有已經(jīng)回答的人。編輯 2好的,伙計(jì)們,我終于學(xué)會(huì)了如何正確使用 dotenv,它解決了我的需求,感謝大家的幫助和時(shí)間。
3 回答

慕尼黑8549860
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
如果前端和后端的主機(jī)名相同,請(qǐng)使用window.location.hostname
.
這是stackoverflow的 window.location

白豬掌柜的
TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
就我個(gè)人而言,我希望它是一個(gè)可配置的值,以便我可以在捆綁和部署后輕松更改它。除非 URL 是一個(gè)域名,您可以通過(guò)其他一些配置(即 apache)更改它被重定向到的位置,否則如果您更改后端服務(wù)器的地址,則必須對(duì)代碼進(jìn)行更改,這可能更多比更改配置更耗時(shí)。
這是假設(shè)您信任可能有權(quán)訪問(wèn)此配置文件的每個(gè)人。
添加回答
舉報(bào)
0/150
提交
取消