有時候在本地進行開發(fā)時熊痴,可能會遇到跨域的問題,我所知道的有這么幾種解決方案:
- 使用 jsonp(需要服務端配合)
- 使用 cors(需要服務端配合)
- 瀏覽器端禁用同源策略
- 使用 vue/react 等腳手架中的代理配置
- 使用其他服務器的代理配置
可能還有其他的方法带射,但這些方法是較為常用了。
個人認為,如果不涉及到請求外站的資源卦羡,使用 jsonp 的意義不大,最好是服務端進行跨域資源共享(CORS)的配置权她,這樣最簡單方便虹茶,幾乎不需要前端做什么事情。
最近我們一個項目中也遇到了跨域的問題隅要,服務端開啟了 CORS 后無效(可能是服務端設置不完全所致)蝴罪,于是我在本地使用 nginx 進行反向代理配置。配置的過程很簡單步清,下面進行一下簡單的記錄要门。配置步驟一共分為兩步(如果你沒有安裝 nginx 的話)。
安裝 nginx
我使用的是 windows 操作系統(tǒng)廓啊,因此需要下載 windows 版的 nginx欢搜,下載地址:http://nginx.org/en/download.html
下載對應版本后解壓到某個文件夾就可以了。
配置 nginx.conf
接下來就是對 nginx 進行配置谴轮,打開 nginx 所在的文件夾炒瘟,進入 conf 文件夾,打開 nginx.conf第步,進行簡單的修改:
server {
listen 80;
server_name localhost;
root [這里填寫站點根目錄];
# 這個是項目中的接口地址
location /[項目接口地址]{
proxy_pass [服務器 IP];
}
...
}
遇到的一些小坑
這期間也遇到了幾個小坑:
1.權限問題
由于我的電腦是用了固態(tài)硬盤疮装,所以我把所有的軟件都安裝在 C盤,nginx 也是如此粘都,但將 nginx 安裝到 C盤后廓推,出現(xiàn)了一些奇奇怪怪的錯誤,比如無法寫入日志翩隧,無法訪問到配置文件等等樊展。最后將 nginx 移動到其他盤得以解決。
2.net::ERR_BLOCKED_BY_CLIENT 問題
這個其實和 nginx 沒有什么關系,我在配置了 nginx 的反向代理后专缠,還是無法在頁面中訪問到服務器的數(shù)據(jù)雷酪,但是將接口地址復制到新窗口打開,是可以獲取到內(nèi)容的藤肢,這就就納悶了太闺。
最后在網(wǎng)上搜索,可能是一些廣告屏蔽插件造成的嘁圈,于是我對插件進行了一些設置省骂,不要對我們的項目進行屏蔽,問題就順利解決了最住。
完钞澳。