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

在vue中實現(xiàn)跨域方法小結(jié)

 更新時間:2024年10月28日 10:12:21   作者:前端李易安  
在Web開發(fā)中,跨域問題是一大挑戰(zhàn),跨域是指網(wǎng)絡請求從一個域名發(fā)起,而請求的目標資源位于另一個不同的域名下,通常使用Vue CLI的代理來解決跨域問題,而在生產(chǎn)環(huán)境中,可以通過后端配置CORS或使用Nginx反向代理,或者通過服務器中轉(zhuǎn)來解決跨域問題

在vue中 如何實現(xiàn)跨域

跨域問題是Web開發(fā)中常見的挑戰(zhàn),那么如何解決跨域呢,我們一起來看看吧!

跨域是什么?

跨域(Cross-Origin)是指網(wǎng)絡請求從一個域名(origin)發(fā)起,而請求的目標資源位于另一個不同的域名下。由于瀏覽器的安全策略——同源策略(Same-origin policy),默認情況下不允許不同域名之間的請求直接交互數(shù)據(jù)。這意味著,如果你的前端應用運行在一個域名(如 example.com),而嘗試請求另一個不同域名下的資源(如 api.example.org),那么這種請求就會被認為是跨域請求。

同源策略要求發(fā)起請求的域名、協(xié)議和端口必須與目標資源完全相同。如果不符合這一條件,瀏覽器會阻止請求的完成,除非服務器明確表示允許這種跨域請求。

如何解決跨域問題?

1. CORS(跨域資源共享)

CORS 是服務器配置的一種方式。后端可以在響應頭中設置 Access-Control-Allow-Origin 來允許特定的域名跨域請求。

Access-Control-Allow-Origin: http://example.com
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Headers: Content-Type

Vue 前端可以正常發(fā)起請求,但需要后端支持并配置這些 CORS 頭。

2. Vue CLI 代理

在 Vue 項目開發(fā)環(huán)境中,Vue CLI 提供了一個 devServer 配置,可以設置代理服務器來避免跨域。前端請求將先發(fā)送到本地服務器,由它代理請求目標后端,解決跨域問題。

vue.config.js 中配置:

module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'http://backend-server.com', // 代理的目標服務器地址
        changeOrigin: true, // 是否允許跨域
        pathRewrite: { '^/api': '' } // 重寫請求路徑
      }
    }
  }
}

這里,所有以 /api 開頭的請求都會被代理到后端服務器 http://backend-server.com,從而規(guī)避跨域問題。

  • /api這是代理規(guī)則的路徑匹配模式。當客戶端請求的URL路徑以/api開頭時,該請求將會被代理到指定的目標服務器。例如,如果客戶端請求http://frontend.dev/api/some-resource,那么這個請求將會被代理到目標服務器http://backend-server.com。
  • target: 'http://backend-server.com' target屬性指定了代理的目標服務器地址。所有匹配路徑模式的請求都會被轉(zhuǎn)發(fā)到這個地址。在這個例子中,所有以/api開頭的請求都會被重定向到http://backend-server.com。
  • changeOrigin: true changeOrigin屬性用來指示是否應該改變請求的起源信息。當設置為true時,代理會修改請求的起源信息(如主機名、協(xié)議等),使得后端服務器不會看到前端服務器的地址,而是看起來像是直接請求的。
  • pathRewrite: { '^/api': '' } pathRewrite屬性用于重寫請求路徑。在這個配置中,它移除了所有被代理請求中的/api前綴。例如,如果客戶端請求的是http://frontend.dev/api/some-resource,那么經(jīng)過重寫后,實際發(fā)送到后端服務器的請求將是http://backend-server.com/some-resource。 3. JSONP (僅限 GET 請求)

JSONP 是一種歷史上的跨域解決方案,但只能用于 GET 請求。它通過 <script> 標簽的跨域加載機制來實現(xiàn)。一般現(xiàn)代應用不推薦使用這種方式。

4. Nginx 反向代理

在生產(chǎn)環(huán)境中,通常使用 Nginx 反向代理來處理跨域請求。Nginx 可以作為前端和后端之間的中介,接收前端請求后,再將請求轉(zhuǎn)發(fā)到后端,從而避免跨域問題。

配置示例:

server {
    listen 80;
    server_name my-frontend.com;
    location /api/ {
        proxy_pass http://backend-server.com;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

前端通過 /api 訪問后端資源,不會觸發(fā)跨域。

5. 服務器端中轉(zhuǎn)

如果跨域問題無法通過其他方式解決,還可以通過中轉(zhuǎn)服務器的方式,前端請求發(fā)到一個同源的服務器,由該服務器再向目標服務器發(fā)起請求。這種方式適合某些復雜的跨域場景。

總結(jié)

  • 開發(fā)環(huán)境:通常使用 Vue CLI 的代理來解決跨域問題。
  • 生產(chǎn)環(huán)境:后端配置 CORS 或使用 Nginx 反向代理,或者通過服務器中轉(zhuǎn)解決跨域問題。

擴展資料:

Vue項目前端部署——nginx方式 

1. 準備好服務器,下載安裝nginx并啟動

隨便在網(wǎng)上找一篇文章,下載安裝之后,啟動nginx

2. vue項目編譯打包

在項目根目錄下 運行npm run build 進行編譯打包

編譯

打包完成之后,在項目根目錄下會多一個dist目錄

在這里插入圖片描述

3. 將dist目錄上傳到服務器上

在這里插入圖片描述

4. 配置nginx安裝目錄下的nginx.config文件

因為使用到nginx進行代理,所以vue.config.js里面的代理是不會生效的,我們使用nginx來配置反向代理,配置完成保存文件

server {
        listen       3012; #訪問端口
        server_name  localhost;
        location / {
       	   root /xx/xx/xx/dist; #前端dist包地址
           index  index.html index.htm;
	       try_files $uri $uri/ /index.html;
		}
        location /ele/ {
		proxy_set_header x-forwarded-for  $remote_addr;
		proxy_pass http://xx.xx.xx.xx:8080/; #后端代理地址
		}
	charset utf-8;
    }

5. 重啟nginx

使用service nginx restart 或則 nginx -s reload 進行nginx重啟

6. 訪問地址

地址為服務器地址,端口是nginx配置的訪問端口,
因為我配置的是3012,所以直接 ip:3012即可。如果首頁有其他路由,可以使用ip:3012/router的方式,比如首頁路由是/index 訪問地址就是ip:3012/index

到此這篇關于Vue項目使用nginx方式部署前端的文章就介紹到這了,更多相關Vue nginx部署內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 一文教會你搭建vite項目并配置路由和element-plus

    一文教會你搭建vite項目并配置路由和element-plus

    由于項目搭建過程實在繁瑣,容易遺忘,每次新建項目還得百度一下怎么搭建,所以寫下本文提醒自己,下面這篇文章主要給大家介紹了關于搭建vite項目并配置路由和element-plus的相關資料,需要的朋友可以參考下
    2022-07-07
  • Vue動態(tài)綁定Class的幾種常用方式

    Vue動態(tài)綁定Class的幾種常用方式

    在vue框架開發(fā)中,有時候我們需要對元素的樣式進行動態(tài)控制,比如tab按鈕的切換,下面這篇文章主要給大家介紹了關于Vue動態(tài)綁定Class的幾種常用方式,需要的朋友可以參考下
    2023-03-03
  • 詳解axios全局路由攔截的設置方法

    詳解axios全局路由攔截的設置方法

    這篇文章主要介紹了axios全局路由攔截的設置方法,axios全局路由代碼通常是在構(gòu)建axios實例注入的,本文通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • vue項目中,main.js,App.vue,index.html的調(diào)用方法

    vue項目中,main.js,App.vue,index.html的調(diào)用方法

    今天小編就為大家分享一篇vue項目中,main.js,App.vue,index.html的調(diào)用方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vite基本常見的配置講解

    vite基本常見的配置講解

    這篇文章主要給大家介紹了關于vite基本常見配置講解的相關資料,最近做項目要求將webpack打包方式換成vite,下面將詳細講解一下配置vite需要改動的東西,需要的朋友可以參考下
    2023-11-11
  • Vue3 Ref獲取真實DOM學習實戰(zhàn)

    Vue3 Ref獲取真實DOM學習實戰(zhàn)

    這篇文章主要為大家介紹了Vue3 Ref獲取真實DOM學習實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 淺談Vuex@2.3.0 中的 state 支持函數(shù)申明

    淺談Vuex@2.3.0 中的 state 支持函數(shù)申明

    這篇文章主要介紹了淺談Vuex@2.3.0 中的 state 支持函數(shù)申明,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 一文詳解Vue如何整合Echarts實現(xiàn)可視化界面

    一文詳解Vue如何整合Echarts實現(xiàn)可視化界面

    ECharts,縮寫來自Enterprise Charts,商業(yè)級數(shù)據(jù)圖表,一個純Javascript的圖表庫,可以流暢的運行在PC和移動設備上。本文將在Vue中整合Echarts實現(xiàn)可視化界面,感興趣的可以了解一下
    2022-04-04
  • 關于vue中根據(jù)用戶權限動態(tài)添加路由的問題

    關于vue中根據(jù)用戶權限動態(tài)添加路由的問題

    每次路由發(fā)生變化時都需要調(diào)用一次路由守衛(wèi),并且store中的數(shù)據(jù)會在每次刷新的時候清空,因此需要判斷store中是否有添加的動態(tài)路由,本文給大家分享vue中根據(jù)用戶權限動態(tài)添加路由的問題,感興趣的朋友一起看看吧
    2021-11-11
  • 詳解Element 指令clickoutside源碼分析

    詳解Element 指令clickoutside源碼分析

    這篇文章主要介紹了詳解Element 指令clickoutside源碼分析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02

最新評論

满城县| 葵青区| 永城市| 蕲春县| 永宁县| 漠河县| 无为县| 通化县| 麟游县| 黄平县| 鄄城县| 淄博市| 太仓市| 堆龙德庆县| 博野县| 广河县| 来安县| 麦盖提县| 许昌县| 株洲市| 阿尔山市| 小金县| 丽水市| 宣汉县| 满洲里市| 独山县| 安达市| 阆中市| 贵州省| 大埔区| 刚察县| 枣阳市| 阿合奇县| 诸暨市| 阳山县| 灵璧县| 富阳市| 尚志市| 阿鲁科尔沁旗| 札达县| 寿光市|