前后端分離項目需要解決第一個問題就是,前端本地開發(fā)時如何解決通過ajax請求產(chǎn)生的跨域的問題。一般的做法是通過本地配置nginx反向代理進(jìn)行處理的,除此之外,還可以通過nodejs來進(jìn)行代理接口。當(dāng)然,要實現(xiàn)這個前提是,前端開發(fā)環(huán)境必須運行在nodejs服務(wù)中,所幸的是,現(xiàn)在前端的開發(fā)自動化工具都是建立在nodejs上的,所以這個前提也不是很重要。

webpack-dev-server配置跨域方案

如果你項目是用webpack作為前端自動化構(gòu)建工具的話,那么可以引用webpack-dev-server來進(jìn)行配置跨域方案。webpack-dev-server是一個小型的nodejs服務(wù)器,是基于express框架的,用于實時監(jiān)聽和打包編譯靜態(tài)資源。其中里面有一個屬性是proxy,是專門來配置代理請求接口的。

舉個例子:

比如我現(xiàn)在通過webpack構(gòu)建了一個本地開發(fā)環(huán)境,端口號是9000,現(xiàn)在我要在本地去請求(GET) http://jsonplaceholder.typicode.com/users 地址獲取數(shù)據(jù),如果前端沒有設(shè)置代理的話,請求會因為跨域請求失敗。這時候通過如下配置,就可以正常請求了。

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計算培訓(xùn),高端軟件開發(fā)培訓(xùn),項目經(jīng)理培訓(xùn)

devServer: {
   contentBase: __dirname + "/",
   port: 9000,
   proxy: {     "/users": {    //需要代理的路徑
       target: "http://jsonplaceholder.typicode.com",  //需要代理的域名
       changeOrigin: true  //必須配置為true,才能正確代理     }
   }
}

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計算培訓(xùn),高端軟件開發(fā)培訓(xùn),項目經(jīng)理培訓(xùn)

通過如上配置,然后在js里面這樣請求就可以成功拿到數(shù)據(jù)了:

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計算培訓(xùn),高端軟件開發(fā)培訓(xùn),項目經(jīng)理培訓(xùn)

        		

網(wǎng)友評論