利用nginx做反向代理解決前端跨域問題


本文轉自:利用nginx做反向代理解決前端跨域問題

 

最近朋友再群里提了一個問題,他們公司給他提供了一個獲取數據的接口,在瀏覽器訪問這個接口能獲取到json數據,但是放在項目里使用ajax就產生了跨域問題,一般這個需要提供接口的后台方面需要做跨域處理,但是提供接口的不是他們公司的,然后就問大家有沒有解決方案.

正好這幾天看了一些關於node方面的知識,我跟他說,你可以讓你們的后台做一個接口轉發,用你們的后台去請求這個接口,然后在提供一個接口供你使用,相當於做了一個中轉,因為服務器之間沒有跨域,所以能夠請求到數據.

然后他又問有沒有另外的解決方法,感覺這個有點麻煩,然后我仔細想了想,突然想起了nginx解決跨域的辦法,但是具體記不太清楚了,於是搜索相關的問題,網上給的資料很多,其實實現也很簡單,就是使用nginx做一個反向代理,不過這個需要后台人員協助處理.具體步驟:

1.在安裝了nginx的服務器中找到nginx.conf文件里的server{},如果沒有找到的話就到該文件同級的conf.d文件夾里面的default.conf文件.

2.在里面添加如下代碼

1
2
3
4
5
6
7
8
9
10
11
server
{
     listen 80;
     server_name www.aaa.top;
     location / {
         proxy_pass http: //www.bbb.com;
         add_header  'Access-Control-Allow-Origin'  '*'
         add_header  'Access-Control-Allow-Credentials'  'true'
     }
     ##### other directive
}

  其中www.aaa.com代表自己的域名,www.bbb.com代表的別人的域名,就是需要跨域的域名,然后添加上允許跨域的請求頭,然后重啟nginx就可以了.

這樣的話請求www.aaa.com的接口就相當於請求www.bbb.com的接口了.

以上就是利用nginx做反向代理解決跨域的方法.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM