小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Vue如何解決跨域問題詳解

 宇宙之窗 2022-08-17 發(fā)布于福建
  更新時間:2022年02月23日 10:41:56   作者:南獨酌酒nvn  
VUE訪問接口的時候,很可能出現(xiàn)跨域請求,從而被提供接口的服務(wù)器拒絕,下面這篇文章主要給大家介紹了關(guān)于Vue如何解決跨域問題的相關(guān)資料,需要的朋友可以參考下

什么是跨域

跨域指瀏覽器不允許當前頁面的所在的源去請求另一個源的數(shù)據(jù)。源指協(xié)議,端口,域名。只要這個3個中有一個不同就是跨域。 這里列舉一個經(jīng)典的列子:

#協(xié)議跨域
http://a.baidu.com訪問https://a.baidu.com;
#端口跨域
http://a.baidu.com:8080訪問http://a.baidu.com:80;
#域名跨域
http://a.baidu.com訪問http://b.baidu.com;

通常在不同服務(wù)器訪問過程中可能會遇到跨域問題,也就是口頭上常說的策略同源問題 CORS

出現(xiàn)跨越一般就是判斷三個地方,http協(xié)議,請求地址,端口號,三者若有一處不相同,那么就會出現(xiàn)跨域,解決這個問題就要配置一個代理服務(wù)器,通過代理服務(wù)器實現(xiàn)跨域請求

解決跨域的情況一般就是如下圖:

Vue 中配置跨域的配置在 vue.config.js 文件中添加:

配置一個的寫法

1
2
3
4
5
module.exports = {
  devServer: {
    proxy: 'http://localhost:5000' // 配置訪問的服務(wù)器地址
  }
}

配置多個的寫法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'http://localhost:5000', // 配置訪問的服務(wù)器地址
        pathRewrite: { '^/api': '' },  // 用于將請求中的 /api 字符串替換為空, 然后訪問地址就能正確訪問,若不添加此行配置,那么訪問地址就變成了: http://localhost:5000/api/request_url,這樣的請求就會出現(xiàn) 404 操作
        ws: true, // 是否支持 webstocket, 默認是 true
        changeOrigin: true // 用于控制請求頭中的 host 值, 默認是 ture
      },
      '/api2': {
        target: 'http://localhost:6000', // 配置訪問的服務(wù)器地址
        pathRewrite: { '^/api2': '' },  // 用于將請求中的 /api2 字符串替換為空, 然后訪問地址就能正確訪問,若不添加此行配置,那么訪問地址就變成了: http://localhost:6000/api/request_url,這樣的請求就會出現(xiàn) 404 操作
        ws: true, // 是否支持 webstocket, 默認是 true
        changeOrigin: true // 用于控制請求頭中的 host 值, 默認是 ture
      }
    }
  }
}

添加完代理服務(wù)器的相關(guān)配置,就需要通過 ajax 請求訪問服務(wù)器了,一般 vue 中使用的都是 axios 庫,這里就以 axios 庫為例子:

安裝 axios

1
npm i axios

使用 axios

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 引入 axios 庫
import axios from 'axios'
export default {
    name: 'Student', // 組件名稱
    // 組件使用的方法
    methods: {
        注釋內(nèi)容 `:get 請求訪問 /api 前綴開頭的地址,實際上訪問的地址是: http://localhost:5000/request_url`
        test1() {
            axios.get('http://localhost:8080/api/request_url').then(res => {
                console.log(res.data); // 輸出請求響應(yīng)值內(nèi)容
            });
        },
        注釋內(nèi)容 :`get 請求訪問 /api2 前端開頭的地址,實際上訪問的地址是:http://localhost:6000/request_url`
        test2() {
            axios.get('http://localhost:8080/api2/request_url').then(res => {
                console.log(res.data); // 輸出請求響應(yīng)值內(nèi)容
            })
        }
    }  
}

總結(jié)

到此這篇關(guān)于Vue如何解決跨域問題的文章就介紹到這了,更多相關(guān)Vue解決跨域問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多