濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > 如何用Nginx解決前端跨域問題

如何用Nginx解決前端跨域問題

熱門標(biāo)簽:外呼系統(tǒng)不彈窗 云會(huì)外呼系統(tǒng) 智能電話機(jī)器人坐席 柳州市機(jī)器人外呼系統(tǒng)報(bào)價(jià) 外呼系統(tǒng)的經(jīng)營范圍 涪陵商都400電話開通辦理 安陽ai電銷機(jī)器人軟件 申請(qǐng)400電話價(jià)格多少 廈門營銷外呼系統(tǒng)平臺(tái)

前言

在開發(fā)靜態(tài)頁面時(shí),類似Vue的應(yīng)用,我們常會(huì)調(diào)用一些接口,這些接口極可能是跨域,然后瀏覽器就會(huì)報(bào)cross-origin問題不給調(diào)。

最簡單的解決方法,就是把瀏覽器設(shè)為忽略安全問題,設(shè)置--disable-web-security。不過這種方式開發(fā)PC頁面到還好,如果是移動(dòng)端頁面就不行了。

解決辦法

使用Nginx轉(zhuǎn)發(fā)請(qǐng)求。把跨域的接口寫成調(diào)本域的接口,然后將這些接口轉(zhuǎn)發(fā)到真正的請(qǐng)求地址。

舉個(gè)栗子

例如我們?cè)陂_發(fā)一個(gè)Vue應(yīng)用。

原先:

調(diào)試頁面是: http://192.168.1.100:8080/

請(qǐng)求的接口是: http://ni.hao.sao/api/get/info

步驟一:

請(qǐng)求的接口是: http://192.168.1.100:8080/api/get/info

PS:這樣就解決了跨域問題。

步驟二:

安裝好Nginx后,去到/usr/local/etc/nginx/目錄(這是Mac的),修改nginx.conf文件。

步驟三:

把默認(rèn)的server配置注釋掉。

在下面增加:

  server{
    listen 8888;
    server_name 192.168.1.100;
 
    location /{
      proxy_pass http://192.168.1.100:8080;
    }
 
    location /api{
      proxy_pass http://ni.hao.sao/api;
    }
  }

保存后,啟動(dòng)Nginx。

PS:并不需要太了解Nginx的配置,很簡單的。

步驟四:

訪問: http://192.168.1.100:8888/

搞定。

PS:注意訪問的端口是‘8888',有其他域的地址繼續(xù)加location就行了。

錯(cuò)誤示范

我一開始不太懂Nginx的配置,以為可以如下配置。

  server{
    listen 8080;
    server_name 192.168.1.100;
 
    location /api{
      proxy_pass http://ni.hao.sao/api;
    }
  }

之所以這么寫,是我認(rèn)為這樣可以讓Nginx幫我監(jiān)聽8080的請(qǐng)求,然后只轉(zhuǎn)發(fā)匹配的請(qǐng)求。我沒有意識(shí)到的是Nginx這么寫后,是需要占用8080端口的。

既然需要占用端口,那也就不能再被其他相同協(xié)議的進(jìn)程占用,就導(dǎo)致開發(fā)的頁面無法以8080端口啟用。經(jīng)同事提點(diǎn),才想起這事情,換下思路,就有了最上面的方法。

總結(jié)

其實(shí)不僅是在開發(fā)調(diào)試時(shí)候能這么干,在生產(chǎn)環(huán)境也能這么玩。利用Nginx轉(zhuǎn)發(fā)請(qǐng)求之后,就能夠讓所要部署的靜態(tài)頁面不需要放在跟請(qǐng)求接口同域的地方。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:福州 蕪湖 晉城 綏化 巴中 孝感 撫順 南充

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《如何用Nginx解決前端跨域問題》,本文關(guān)鍵詞  如,何用,Nginx,解決,前端,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《如何用Nginx解決前端跨域問題》相關(guān)的同類信息!
  • 本頁收集關(guān)于如何用Nginx解決前端跨域問題的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    成安县| 高碑店市| 兖州市| 五台县| 赞皇县| 拜泉县| 澳门| 化德县| 友谊县| 贡嘎县| 兴山县| 兴安盟| 墨玉县| 恩施市| 竹北市| 集贤县| 台州市| 淳安县| 凤山县| 汽车| 体育| 鄂温| 攀枝花市| 确山县| 嵩明县| 雷州市| 平舆县| 黑龙江省| 白山市| 定西市| 探索| 巫溪县| 汝城县| 平泉县| 会东县| 桂阳县| 永昌县| 合水县| 贺兰县| 怀柔区| 宜兴市|