1. 程式人生 > >解決前端開發環境的跨域問題

解決前端開發環境的跨域問題

在我們進行專案開發時,想要和別的伺服器進行通訊,那肯定會遇到跨域問題,所謂跨域 就是因為同源策略的限制,導致不同源之間不能通訊。所謂同源是指,域名,協議,埠相同。同源策略(Same origin policy)是一種約定,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,則瀏覽器的正常功能可能都會受到影響。可以說Web是構建在同源策略基礎之上的,瀏覽器只是針對同源策略的一種實現。

解決跨域問題,通常有兩種方式:第一:後臺配置允許所有域訪問或者允許指定域訪問。第二:前端proxyTable配置代理。下面 我們來講講如何前端配置跨域,而且這只是在開發環境下的配置跨域,生產環境下還要配置Nginx代理服務。在vue專案的config檔案下的index.js下中的proxyTable做如下配置(若我們呼叫的完整介面是:

http://192.168.0.22:8080/ZCloud/Controls/queryAllControls

proxyTable: {
      '/api': {
        target: 'http://192.168.0.22:8080',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }    
      },
  // 倘若我們需要訪問不同的伺服器可像如下新增配置
      '/card': {
        target: 'http://api.pyun.com',
        changeOrigin: true,
        pathRewrite: {
          '^/card': ''
        }    
      }
    },

那我們呼叫介面就可以這樣呼叫:

export const getLampMgmtInfoList = (params) => {
  return Axios.post('/api/ZCloud/Controls/queryAllControls', params).then(res => res.data)
}

 這樣配置好後,就不會再出現關於禁止訪問的跨域報錯了。