自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一篇文章實(shí)現(xiàn)Vue集成Axios、調(diào)用、跨域、配置多個(gè)跨域

開發(fā) 前端
Axios是一個(gè)來自于vue官方推薦的一個(gè)用于與后端(Java、go、Python、PHP)進(jìn)行數(shù)據(jù)交互的JavaScript庫,你可以通過axios庫快速高效的與后端進(jìn)行數(shù)據(jù)交互,是現(xiàn)文件上傳等復(fù)雜功能。

 [[361307]]

前言:

Axios是一個(gè)來自于vue官方推薦的一個(gè)用于與后端(Java、go、Python、PHP)進(jìn)行數(shù)據(jù)交互的JavaScript庫,你可以通過axios庫快速高效的與后端進(jìn)行數(shù)據(jù)交互,是現(xiàn)文件上傳等復(fù)雜功能。




JavaScript庫:Axios

安裝Axios:

將命令提示符切換到項(xiàng)目目錄輸入"npm install vue-axios --save"進(jìn)行安裝,在安裝完畢后在main.js粘貼如下內(nèi)容:

  1. import axios from 'axios' 
  2.  
  3. Vue.prototype.$axios = axios 

 便完成安裝。

調(diào)用axios

在安裝完畢之后可以直接參考axios官方文檔例子進(jìn)行調(diào)用,在官網(wǎng)的基礎(chǔ)上將axios替換成this.$axios即可完成調(diào)用。

例子:

簡單請求:

  1. this.$axios.get('/user?ID=12345') .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); 

編程式請求:

  1. this.$axios({ method: 'post', url: '/user/12345', data: { firstName: 'Fred', lastName: 'Flintstone' }}); 

所有的請求均完美支持axios官方Api,在原有api的基礎(chǔ)上只需要將axios替換為this.$axios,其他部分按照官方例子即可。

怎樣實(shí)現(xiàn)跨域:

什么是跨域:當(dāng)一個(gè)請求url的協(xié)議、域名、端口三者之間任意一個(gè)與當(dāng)前頁面url不同即為跨域。

在前端開發(fā)是解決跨域是需要前端與后端進(jìn)行共同解決的,特別實(shí)在調(diào)試開發(fā)階段前端配置跨域是非常重要且有必要的。

在配置跨域是需要vue.config.js+axios進(jìn)行聯(lián)合開發(fā),從而實(shí)現(xiàn)前端的跨域能力,在后端沒有配置跨域的情況下與后端實(shí)現(xiàn)數(shù)據(jù)交互,加快開發(fā)進(jìn)度。

  1. 1、 vue.config.js(如沒有請?jiān)诟夸浶陆?,具體代碼如下(可直接拷貝): 
  2.  
  3. 2、 // Vue.config.js 配置選項(xiàng) 
  4.  
  5. 3、 
  6.  
  7. 4、 module.exports = { 
  8.  
  9. 5、 publicPath: "./"
  10.  
  11. 6、 // 構(gòu)建時(shí)的輸出目錄 
  12.  
  13. 7、 outputDir: "dist"
  14.  
  15. 8、 // 放置靜態(tài)資源的目錄 
  16.  
  17. 9、 assetsDir: "static"
  18.  
  19. 10、 transpileDependencies: [ /* string or regex */ ], 
  20.  
  21. 11、 // 是否為生產(chǎn)環(huán)境構(gòu)建生成 source map? 
  22.  
  23. 12、 productionSourceMap: false
  24.  
  25. 13、 devServer: { 
  26.  
  27. 14、 opentrue
  28.  
  29. 15、 host: 'localhost'
  30.  
  31. 16、 port: 8080, 
  32.  
  33. 17、 https: false
  34.  
  35. 18、 //以上的ip和端口是我們本機(jī)的;下面為需要跨域的 
  36.  
  37. 19、 proxy: { //配置跨域 
  38.  
  39. 20、 '/ks': { 
  40.  
  41. 21、 target: 'http://search.kuwo.cn', //這里后臺(tái)的地址模擬的;應(yīng)該填寫你們真實(shí)的后臺(tái)接口 
  42.  
  43. 22、 ws: true
  44.  
  45. 23、 changOrigin: true, //允許跨域 
  46.  
  47. 24、 pathRewrite: { 
  48.  
  49. 25、 '^/ks''' //請求的時(shí)候使用這個(gè)api就可以 
  50.  
  51. 26、 } 
  52.  
  53. 27、 }, 
  54.  
  55. 28、 '/kp': { 
  56.  
  57. 29、 target: 'http://antiserver.kuwo.cn', //這里后臺(tái)的地址模擬的;應(yīng)該填寫你們真實(shí)的后臺(tái)接口 
  58.  
  59. 30、 ws: true
  60.  
  61. 31、 changOrigin: true, //允許跨域 
  62.  
  63. 32、 pathRewrite: { 
  64.  
  65. 33、 '^/kp''' //請求的時(shí)候使用這個(gè)api就可以 
  66.  
  67. 34、 } 
  68.  
  69. 35、 } 
  70.  
  71. 36、 } 
  72.  
  73. 37、 
  74.  
  75. 38、 }, 
  76.  
  77. 39、 } 

 2、怎樣進(jìn)行跨域調(diào)用:

在原有的axios開發(fā)的api基礎(chǔ)上在鏈接前增加pathRewrite的名稱如:

編程式請求:

  1. this.$axios({ method: 'post', url: '/ks/user/12345', data: { firstName: 'Fred', lastName: 'Flintstone' }}); 

便可實(shí)現(xiàn)跨域的功能。

配置多個(gè)領(lǐng)域:

在我們實(shí)際的開發(fā)中往往需要調(diào)用開發(fā)的api鏈接可能不一樣(例如:圖片鏈接api是a.com、天氣鏈接是b.com),那么我們調(diào)試的時(shí)候需要配置兩個(gè)跨域。

示例代碼

  1. 40、 module.exports = { 
  2.  
  3. 41、 publicPath: "./"
  4.  
  5. 42、 // 構(gòu)建時(shí)的輸出目錄 
  6.  
  7. 43、 outputDir: "dist"
  8.  
  9. 44、 // 放置靜態(tài)資源的目錄 
  10.  
  11. 45、 assetsDir: "static"
  12.  
  13. 46、 transpileDependencies: [ /* string or regex */ ], 
  14.  
  15. 47、 // 是否為生產(chǎn)環(huán)境構(gòu)建生成 source map? 
  16.  
  17. 48、 productionSourceMap: false
  18.  
  19. 49、 devServer: { 
  20.  
  21. 50、 opentrue
  22.  
  23. 51、 host: 'localhost'
  24.  
  25. 52、 port: 8080, 
  26.  
  27. 53、 https: false
  28.  
  29. 54、 //以上的ip和端口是我們本機(jī)的;下面為需要跨域的 
  30.  
  31. 55、 proxy: { //配置跨域 
  32.  
  33. 56、 '/image: { 
  34.  
  35. 57、 target: 'http://a.com', //這里后臺(tái)的地址模擬的;應(yīng)該填寫你們真實(shí)的后臺(tái)接口 
  36.  
  37. 58、 ws: true
  38.  
  39. 59、 changOrigin: true, //允許跨域 
  40.  
  41. 60、 pathRewrite: { 
  42.  
  43. 61、 '^/image''' //請求的時(shí)候使用這個(gè)api就可以 
  44.  
  45. 62、 } 
  46.  
  47. 63、 }, 
  48.  
  49. 64、 '/wt': { 
  50.  
  51. 65、 target: 'http://antiserver.kuwo.cn', //這里后臺(tái)的地址模擬的;應(yīng)該填寫你們真實(shí)的后臺(tái)接口 
  52.  
  53. 66、 ws: true
  54.  
  55. 67、 changOrigin: true, //允許跨域 
  56.  
  57. 68、 pathRewrite: { 
  58.  
  59. 69、 '^/wt''' //請求的時(shí)候使用這個(gè)api就可以 
  60.  
  61. 70、 } 
  62.  
  63. 71、 } 
  64.  
  65. 72、 } 
  66.  
  67. 73、 
  68.  
  69. 74、 }, 
  70.  
  71. 75、 } 

 此時(shí)如果我們需要進(jìn)行跨域請求。

請求圖片:

  1. this.$axios({  method: 'post',  url: '/image/user/12345',  data: {    firstName: 'Fred',    lastName: 'Flintstone'  }}); 

請求天氣:

  1. this.$axios({ method: 'post', url: '/wt/user/12345', data: { firstName: 'Fred', lastName: 'Flintstone' }}); 

注意:

1、 跨域配置指的是在本地運(yùn)行npm環(huán)境中跨域,在打包后還是需要服務(wù)器的支持和后端支持,直接打包上下并不會(huì)跨域。

2、 在配置多個(gè)跨域時(shí)請注意首位名字必須一致。

例子:

基于EuiAdmin+axios實(shí)現(xiàn)跨域與酷我音樂進(jìn)行交互,實(shí)現(xiàn)音樂播放器例子:

一篇文章實(shí)現(xiàn)vue集成axios、調(diào)用、跨域、配置多個(gè)跨域

總結(jié):

Vue集成axios為了能夠在與后臺(tái)實(shí)現(xiàn)數(shù)據(jù)交互,真正發(fā)揮前端的作用。實(shí)現(xiàn)前后端分離,構(gòu)建前后端數(shù)據(jù)交互的通道,你也可以前往euiadmin.com獲取源碼幫助您理解。

 

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2021-05-25 10:15:20

JavaScript 前端作用域

2021-11-12 07:43:34

版本HDFS工具

2023-04-07 10:51:39

2021-06-15 07:32:59

Cookie和Sess實(shí)現(xiàn)跨域

2010-07-30 12:48:13

Flex跨域調(diào)用

2022-05-25 08:31:31

ArthasInstrument

2019-04-10 10:32:16

CORSNginx反向代理

2016-11-01 21:51:03

phpjavascript

2020-10-09 08:15:11

JsBridge

2014-08-19 10:36:02

AngularCORS

2021-06-10 18:11:02

Cors跨域Web開發(fā)Cors

2021-04-27 15:20:41

人工智能機(jī)器學(xué)習(xí)技術(shù)

2022-02-21 09:44:45

Git開源分布式

2023-05-12 08:19:12

Netty程序框架

2021-06-30 00:20:12

Hangfire.NET平臺(tái)

2019-04-17 15:16:00

Sparkshuffle算法

2021-04-09 08:40:51

網(wǎng)絡(luò)保險(xiǎn)網(wǎng)絡(luò)安全網(wǎng)絡(luò)風(fēng)險(xiǎn)

2024-06-25 08:18:55

2022-11-29 21:26:26

跨域配置

2017-09-05 08:52:37

Git程序員命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)