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

首頁 > 語言 > JavaScript > 正文

vue使用代理解決請求跨域問題詳解

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

在日常開發(fā)中,我們前端必不可少的需要像后端請求數據。

但是一般前后端分離,所以域名、端口等肯定不盡相同,這樣就不可避免的會遇到瀏覽器的同源策略限制。

在一般情況下,后端都會設置請求跨域允許的來源、方法等。

但是也保不準后端疏忽而忘記這個問題。

那為了不影響我們的開發(fā),前端只能被動的去找后端解決跨域問題。

其實,我們前端也可以解決跨域問題,那就是使用代理。

舉個例子:

我請求的地址是這個:http://192.168.12.36:9000/api/SourceManager

但是我本地的vue項目的端口號是8080,這里就涉及到了端口號不一致導致的同源策略問題(別想著改成同端口,會沖突)、

那么我發(fā)起請求就會跨域而被瀏覽器攔截,那么我們來看看解決辦法:

在vue的config文件夾中有個index.js文件:

在proxyTable中配置代理(名字可以隨便起,我用的是web)

proxyTable: {  '/web': {    //設置你調用的接口域名和端口號 別忘了加http    target: 'http://192.168.12.36:9000/api/SourceManage',    changeOrigin: true,    pathRewrite: {      '^/web': ''      //這里理解成用‘/web'代替target里面的地址,后面組件中我們掉接口時直接用web代替 比如我要調用'http://192.168.12.36:9000/api/SourceManage/user/add',直接寫‘/web/user/add'即可    }  }}

因為我是把公共的請求地址抽離出來的,所以大家可以參考以下部分:

獲取數據:http://192.168.12.36:9000/api/SourceManager/GetAll

增加數據:http://192.168.12.36:9000/api/SourceManager/AddSource

修改數據:http://192.168.12.36:9000/api/SourceManager/UpdateSource

刪除數據:http://192.168.12.36:9000/api/SourceManager/DeleteSource

理論上代理中配置到端口號即可,但是我為了后期方便,把公共地址抽離出來,一直配置到公共的結束,所以代理中我配置的是http://192.168.12.36:9000/api/SourceManager

然后在config文件夾中的dev.env.js文件中配置生產環(huán)境(開發(fā)環(huán)境):

這邊寫自己的路徑端口號以及前面配置的代理名:

module.exports = merge(prodEnv, {  NODE_ENV: '"development"',  API_ROOT: ' "http://localhost:8080/web" '})

然后在config文件夾中的prod.env.js文件中配置產品環(huán)境(上線環(huán)境):

這邊我暫時就不寫了,大家上線打包的時候寫成自己的實際請求地址即可。

module.exports = {  NODE_ENV: '"production"',  API_ROOT: ' "" '}

然后在main.js里改為請求配置的地址:

// 引入axiosimport axios from 'axios' // 使用axiosVue.prototype.axios = axios; // 配置公共請求地址Vue.prototype.baseURL = process.env.API_ROOT;

然后在每個頁面請求即可,寫法參考:

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

圖片精選

主站蜘蛛池模板: 安丘市| 佳木斯市| 荣昌县| 罗田县| 禹州市| 监利县| 阿拉尔市| 兴宁市| 应用必备| 盐边县| 称多县| 丰镇市| 无为县| 萝北县| 珠海市| 米泉市| 汕尾市| 高雄市| 礼泉县| 方正县| 黔西| 延津县| 临猗县| 新丰县| 平江县| 青海省| 临颍县| 论坛| 萝北县| 措美县| 正蓝旗| 康保县| 岚皋县| 建昌县| 甘孜| 赤城县| 天峻县| 腾冲县| 台北县| 天峻县| 监利县|