国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解vue-cli項目開發/生產環境代理實現跨域請求

2024-05-06 15:36:43
字體:
來源:轉載
供稿:網友

開發環境中跨域

使用vue-cli創建的項目,開發地址是localhost:8080,需要訪問非本機上的接口http://192.168.0.112:8080/cms/queryMaterial。不同域名之間的訪問,需要跨域才能正確請求。跨域的方法很多,通常都需要后臺配置,不過vue-cli創建的項目,可以直接利用node.js代理服務器,通過修改vue proxyTable接口實現跨域請求。在vue-cli項目中的config文件夾下的index.js配置文件中,修改前的dev:

dev: {  assetsSubDirectory: 'static', //靜態資源根目錄的子目錄static,也就是dist目錄下面的static  assetsPublicPath: '/', //編譯發布的根目錄,可配置為資源服務器域名或 CDN 域名  proxyTable: {}, //proxyTable 代理的接口(可跨域)  host: 'localhost',   port: 8080, //dev-server的端口號,可以自行更改  autoOpenBrowser: false, //是否自動打開瀏覽器  errorOverlay: true,  notifyOnErrors: true,  poll: false,   useEslint: true,  showEslintErrorsInOverlay: false,  devtool: 'cheap-module-eval-source-map',  cacheBusting: true,  cssSourceMap: true //默認情況下,關閉 CSS Sourcemaps,因為使用相對路徑會報錯 },  

只要修改里面的proxyTable: {}

proxyTable: { '/cms': { //代理地址  target: 'http://192.168.0.112:8080', //需要代理的地址  changeOrigin: true, //是否跨域  secure: false,  pathRewrite: {   '^/cms': '/cms' //本身的接口地址沒有'/cms' 這種通用前綴,所以要rewrite,如果本身有則去掉(/cms等價于 www.xxx.com/cms)  } }},

然后重啟項目npm run dev,請求數據時URL前加上“/cms”就可以跨域請求了

this.$axios.get('/cms/queryMaterial', {params: params})   .then((res) => {   console.log(res); }).catch((err) => {   console.log(err); })

訪問接口若沒有安裝axios,則需要進行安裝

1)安裝:npm install axios --save-dev

2)main.js中導入
 import axios from 'axios'; //引入axios進行地址訪問
 Vue.prototype.$axios = axios;(注意:不使用use來使用該例,而是用prototype原型來使用)

1、參數proxyTable詳解:

vue-cli的config文件里的參數:proxyTable,這個參數主要是一個地址映射表,你可以通過設置將復雜的url簡化,例如我們要請求的地址是www.xxx.com/list/1,可以按照如下設置:

proxyTable: { '/list': {  target: 'http://www.xxx.com',  pathRewrite: {   '^/list': '/list'  } }}

這樣我們在寫url的時候,只用寫成/list/1就可以代表www.xxx.com/list/1

那么又是如何解決跨域問題的呢?其實在上面的'list'的參數里有一個changeOrigin參數,接收一個布爾值,如果設置為true,那么本地會虛擬一個服務端接收你的請求并代你發送該請求,這樣就不會有跨域問題了,當然這只適用于開發環境。增加的代碼如下所示:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 呼和浩特市| 托克托县| 太康县| 安康市| 沈丘县| 根河市| 定日县| 内黄县| 尚义县| 来安县| 浦县| 江川县| 乌拉特前旗| 大厂| 读书| 彭山县| 佛冈县| 错那县| 诸城市| 南汇区| 阜康市| 津市市| 勃利县| 桐梓县| 夏河县| 新巴尔虎右旗| 宜阳县| 贵州省| 武冈市| 高尔夫| 定日县| 亳州市| 临洮县| 安化县| 明水县| 武穴市| 邯郸市| 临漳县| 博白县| 十堰市| 富平县|