最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

uniapp Vue3中如何解決web/H5網(wǎng)頁瀏覽器跨域的問題

 更新時間:2024年06月14日 10:34:16   作者:咸蝦米_  
存在跨域問題的原因是因為瀏覽器的同源策略,也就是說前端無法直接發(fā)起跨域請求,同源策略是一個基礎(chǔ)的安全策略,但是這也會給uniapp/Vue開發(fā)者在部署時帶來一定的麻煩,這篇文章主要介紹了在uniapp Vue3版本中如何解決web/H5網(wǎng)頁瀏覽器跨域的問題,需要的朋友可以參考下

問題復(fù)現(xiàn)

uniapp項目在瀏覽器運(yùn)行,有可能調(diào)用某些接口會出現(xiàn)跨域問題,報錯如下圖所示:

在這里插入圖片描述

什么是跨域?

存在跨域問題的原因是因為瀏覽器的同源策略,也就是說前端無法直接發(fā)起跨域請求。同源策略是一個基礎(chǔ)的安全策略,但是這也會給uniapp/Vue開發(fā)者在部署時帶來一定的麻煩。一般來說,瀏覽器會根據(jù)請求來判斷是否同源,判斷的方式是通過判斷兩個URL的協(xié)議(http or https)、域名和端口是否相同來進(jìn)行的。

在uniapp中出現(xiàn)跨域問題如何解決?

1.服務(wù)端設(shè)置CORS

在后端的響應(yīng)頭設(shè)置Access-Control-Allow-Origin屬性,允許前端的訪問:

Access-Control-Allow-Origin: *

如果條件允許,能給找到接口后端開發(fā)者,只需要響應(yīng)頭添加如此設(shè)置,前端即可正常訪問;

但是后端往往考慮安全問題,API接口只允許自己公司項目使用,如果開啟了運(yùn)行跨域那么所有人都可以來蹭你的接口,導(dǎo)致沒必要的消耗或暴露存在的安全漏洞。

或者用了別人的開源接口根本找不到開發(fā)者,所以這個方案依賴于別人,能不能解決跨域,那就隨緣了。

2.在HBuilder編輯器中使用內(nèi)置瀏覽器運(yùn)行

在這里插入圖片描述

如上圖所示,uniapp項目使用內(nèi)置瀏覽器預(yù)覽調(diào)試,可以輕松解決接口在外部瀏覽器出現(xiàn)的跨域問題。

這種方案也是最簡單方便的解決辦法。

3.在vite.config.js中配置代理(vue3版本)

這種方案是開發(fā)vue項目最普遍的用法,在uniapp項目中依然適用,也是我重點給推薦的方式。

vue3是適用vite構(gòu)建及打包的,所以在uniapp項目根目錄下創(chuàng)建vite.config.js,拷貝如下代碼:

import { defineConfig } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';
export default defineConfig({
  plugins: [uni()],
  server: {
    host: "localhost", // 指定服務(wù)器應(yīng)該監(jiān)聽哪個IP地址,默認(rèn):localhost
    port: 5173,        // 指定開發(fā)服務(wù)器端口,默認(rèn):5173
    proxy: {           // 為開發(fā)服務(wù)器配置自定義代理規(guī)則
       // 帶選項寫法:http://localhost:5173/api/posts -> http://jsonplaceholder.typicode.com/posts
      "/api": {
        target: "http://jsonplaceholder.typicode.com", // 目標(biāo)接口
        changeOrigin: true,            // 是否換源
        rewrite: (path) => path.replace(/^\/api/, ""),
      }
    }
  }
});

假設(shè)接口為http://jsonplaceholder.typicode.com/posts ,那么發(fā)送網(wǎng)絡(luò)請求的時候就可以使用如下方式了:

uni.request({
	url:"/api/posts"  //這里的/api相當(dāng)于設(shè)置的target目標(biāo)地址
}).then(res=>{
	console.log(res);
})

例:
接口地址:https://tiyu.baidu.com/api/match/playerranking/match/NBA/tabId/60

補(bǔ)充 vue.config.js中配置代理(vue2版本)

有些同學(xué)使用的是vue2版本開發(fā)項目,vue2和vue3的構(gòu)建工具不同,下面介紹一下vue2版本如何配置代理。
1)在根目錄下創(chuàng)建vue.config.js
2) 拷貝下面的代碼

module.exports = {
  devServer: {
    disableHostCheck: true,
    proxy: {
      "/devapi": {
        target: "http://jsonplaceholder.typicode.com",        
        changeOrigin: true,
        secure: false,        
        pathRewrite: {
          "^/devapi": "/"
        }
      }
    }
  }
}

3)網(wǎng)絡(luò)請求應(yīng)用

uni.request({
	url:"/devapi/posts"  //這里的/devapi相當(dāng)于設(shè)置的target目標(biāo)地址
}).then(res=>{
	console.log(res);
})

詳細(xì)視頻教程

在這里插入圖片描述

到此這篇關(guān)于在uniapp Vue3版本中如何解決web/H5網(wǎng)頁瀏覽器跨域的問題的文章就介紹到這了,更多相關(guān)uniapp Vue3跨域內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue如何在main.js中配置全局的通用公共組件

    vue如何在main.js中配置全局的通用公共組件

    這篇文章主要介紹了vue如何在main.js中配置全局的通用公共組件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue學(xué)習(xí)筆記之vue1.0和vue2.0的區(qū)別介紹

    vue學(xué)習(xí)筆記之vue1.0和vue2.0的區(qū)別介紹

    今天我們來說一說vue1.0和vue2.0的主要變化有哪些?對vue相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧
    2017-05-05
  • 解決vue elementUI中table里數(shù)字、字母、中文混合排序問題

    解決vue elementUI中table里數(shù)字、字母、中文混合排序問題

    這篇文章主要介紹了vue elementUI中table里數(shù)字、字母、中文混合排序問題,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • 使用jenkins一鍵打包發(fā)布vue項目的實現(xiàn)

    使用jenkins一鍵打包發(fā)布vue項目的實現(xiàn)

    這篇文章主要介紹了使用jenkins一鍵打包發(fā)布vue項目的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Vue3+@antv/g2plot 生成詞云圖的效果

    Vue3+@antv/g2plot 生成詞云圖的效果

    詞云圖是一種文本可視化技術(shù),用于展示文本數(shù)據(jù)中關(guān)鍵詞的頻次或重要性,文章介紹了如何在Vue3中使用@antv/g2plot生成詞云圖,并解釋了如何共享顏色和隨機(jī)生成顏色的組件,感興趣的朋友一起看看吧
    2024-12-12
  • vue 項目中常用的 2 個 Ajax 庫及簡單使用示例

    vue 項目中常用的 2 個 Ajax 庫及簡單使用示例

    Ajax是一種在不重新加載整個頁面的情況下,通過 JavaScript 與服務(wù)器進(jìn)行異步通信的技術(shù),這篇文章主要介紹了vue項目中常用的2 個 Ajax庫,需要的朋友可以參考下
    2025-06-06
  • Vue3導(dǎo)入Elementplus時組件無法加載的情況及解決

    Vue3導(dǎo)入Elementplus時組件無法加載的情況及解決

    這篇文章主要介紹了Vue3導(dǎo)入Elementplus時組件無法加載的情況及解決方案,具有很好的參考價值,希望對大家有所幫助
    2024-03-03
  • vue基于Echarts的拖拽數(shù)據(jù)可視化功能實現(xiàn)

    vue基于Echarts的拖拽數(shù)據(jù)可視化功能實現(xiàn)

    這篇文章主要給大家介紹了關(guān)于vue基于Echars的拖拽數(shù)據(jù)可視化功能實現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 在?Vue?中使用?iframe?嵌套頁面的步驟

    在?Vue?中使用?iframe?嵌套頁面的步驟

    這篇文章主要介紹了在?Vue?中使用?iframe?嵌套頁面,使用?iframe?技術(shù)可以實現(xiàn)多個頁面之間的數(shù)據(jù)傳遞和交互,提高了網(wǎng)站的整體性能和用戶體驗,需要的朋友可以參考下
    2023-05-05
  • vue父子組件的通信方法(實例詳解)

    vue父子組件的通信方法(實例詳解)

    這篇文章主要介紹了vue父子組件的通信的方法,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11

最新評論

乐平市| 齐齐哈尔市| 祥云县| 皋兰县| 洛川县| 芦山县| 甘孜| 灵璧县| 南丹县| 阜康市| 集贤县| 江川县| 永年县| 平利县| 隆子县| 海原县| 加查县| 当阳市| 宁德市| 青州市| 永登县| 东阳市| 汝阳县| 肇州县| 屏山县| 遂川县| 镇雄县| 芮城县| 绥江县| 罗城| 黎平县| 威远县| 徐汇区| 韶关市| 恩平市| 通化市| 五华县| 宁远县| 乌鲁木齐市| 比如县| 嘉定区|