国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 崇信县| 大城县| 恩施市| 伽师县| 沭阳县| 贵德县| 二手房| 涟水县| 双城市| 乌兰察布市| 思南县| 唐山市| 玉龙| 嘉峪关市| 铜陵市| 高平市| 紫金县| 灯塔市| 禹城市| 大理市| 天峨县| 大荔县| 三明市| 益阳市| 五莲县| 汝州市| 缙云县| 宣武区| 越西县| 云安县| 沈阳市| 开远市| 连平县| 沾化县| 湛江市| 永登县| 宣汉县| 怀宁县| 双流县| 富阳市| 上饶市|