vue-cli 本地環境 API 代理設置和解決跨域


前言
我們在使用 vue-cli 啟動項目的時候npm run dev便可以啟動我們的項目了,通常我們的請求地址是以 localhost:8080 來請求接口數據的,localhost 是沒有辦法設置 cookie 的。

我們可以在 vue-cli 配置文件里面設置一個代理,跨域的方法有很多,通常需要后台來進行配置。我們可以直接通過 node.js 代理服務器來實現跨域請求。

vue proxyTable 接口跨域請求調試
在 vue-cli 項目中的config文件夾下的index.js配置文件中,dev長這樣子:

dev: {
    env: require('./dev.env'),
    port: 8080,
    autoOpenBrowser: true,
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {},   
    cssSourceMap: false
  }
服務器提供的接口如果長這樣https://www.exaple.com/server_new/login,我們把域名提取出來如https://www.exaple.com;

在 config 中新建一個文件命名為proxyConfig.js:

module.exports = {
  proxy: {
        '/apis': {    //將www.exaple.com印射為/apis
            target: 'https://www.exaple.com',  // 接口域名
            changeOrigin: true,  //是否跨域
            pathRewrite: {
                '^/apis': ''   //需要rewrite的,
            }              
        }
  }
}
config文件夾下的index.js引入proxyConfig.js:

var proxyConfig = require('./proxyConfig')
config文件夾下的index.js中的dev改成:

dev: {
    env: require('./dev.env'),
    port: 8080,
    autoOpenBrowser: true,
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: proxyConfig.proxy,
    cssSourceMap: false
  }
重啟項目npm run dev:

你會發現出現了這個

img

這個時候我們已經設置好了本地 API 代理了

修改本地hosts文件
文件路徑一般是C:\Window\System32\drivers\etc,打開hosts文件,在這一段下面把localhost設置進去

# localhost name resolution is handled within DNS itself.
# 127.0.0.1       localhost
# ::1             localhost
127.0.0.1                   activate.adobe.com
127.0.0.1                   practivate.adobe.com
127.0.0.1                   lmlicenses.wip4.adobe.com
127.0.0.1                   lm.licenses.adobe.com
127.0.0.1                   na1r.services.adobe.com
127.0.0.1                   hlrcv.stage.adobe.com

localhost                   www.exaple.com
搞定
此時我們已經完全解決了跨域問題,以及本地測試后台無法向我們本地環境設置cookie的情況了。


本文作者: IIsKei
本文鏈接: http://www.iskei.cn/posts/48205.html
版權聲明: 本博客所有文章除特別聲明外,均采用 CC BY-NC-SA 4.0 許可協議。轉載請注明出處!

 


免責聲明!

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



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