Vue3解析Spring Boot ResponseEntity

在 Vue 3 中解析 Spring Boot 返回的?ResponseEntity?主要涉及處理 HTTP 響應。Spring Boot 的?ResponseEntity?通常包含狀態碼、響應頭和響應體(JSON 數據為主)。以下是詳細步驟和代碼示例:


解決方案步驟:

  1. 發送 HTTP 請求:使用?axios?或?fetch?調用 Spring Boot API

  2. 處理響應:解析 JSON 響應體,獲取狀態碼和頭信息

  3. 處理異常:捕獲可能的網絡錯誤或 API 錯誤狀態碼

  4. 更新 Vue 狀態:將解析后的數據綁定到 Vue 組件


完整示例代碼

1. 安裝依賴

bash

復制

下載

npm install axios
2. Vue 組件示例

vue

復制

下載

<template><div><button @click="fetchData">獲取數據</button><div v-if="loading">加載中...</div><div v-if="error">{{ error }}</div><div v-if="data"><h3>響應數據:</h3><pre>{{ data }}</pre><p>狀態碼:{{ status }}</p></div></div>
</template><script>
import axios from 'axios';export default {data() {return {loading: false,error: null,data: null,status: null};},methods: {async fetchData() {this.loading = true;this.error = null;try {// 替換為你的 Spring Boot API 地址const response = await axios.get('http://localhost:8080/api/data', {headers: {// 如果需要認證// 'Authorization': 'Bearer your_token'}});// 解析 ResponseEntitythis.status = response.status; // HTTP 狀態碼this.data = response.data;    // 響應體(Spring Boot 返回的 body 部分)// 如果需要訪問響應頭const contentType = response.headers['content-type'];console.log('Content-Type:', contentType);} catch (err) {// 處理錯誤(網絡錯誤或 4xx/5xx 響應)if (err.response) {// Spring Boot 返回的錯誤響應this.error = `錯誤 ${err.response.status}: ${err.response.data?.message || '未知錯誤'}`;} else {this.error = `網絡錯誤: ${err.message}`;}} finally {this.loading = false;}}}
};
</script>

關鍵說明:

  1. 響應結構

    • response.data:Spring Boot 中?ResponseEntity?的?body?部分(通常是 JSON 對象)

    • response.status:HTTP 狀態碼(如 200、404 等)

    • response.headers:響應頭(如?content-type

  2. Spring Boot 示例代碼

    java

    復制

    下載

    @RestController
    public class DataController {@GetMapping("/api/data")public ResponseEntity<Map<String, String>> getData() {Map<String, String> data = new HashMap<>();data.put("message", "操作成功");data.put("timestamp", Instant.now().toString());// 返回 ResponseEntity(包含狀態碼、頭信息和數據)return ResponseEntity.ok().header("Custom-Header", "value").body(data);}
    }
  3. 處理特殊場景

    • 二進制文件:如果返回文件流,需設置?responseType: 'blob'

      js

      復制

      下載

      axios.get('/api/file', { responseType: 'blob' }).then(response => {const url = URL.createObjectURL(new Blob([response.data]));// 創建下載鏈接});
    • 自定義錯誤解析

      js

      復制

      下載

      axios.interceptors.response.use(response => response,error => {const customError = error.response?.data?.error || "系統錯誤";return Promise.reject(customError);}
      );

常見問題排查:

  1. 跨域問題 (CORS)

    • 確保 Spring Boot 已配置 CORS:

      java

      復制

      下載

      @Configuration
      public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("http://localhost:5173") // Vue 開發服務器地址.allowedMethods("*");}
      }
  2. 響應數據解析失敗

    • 檢查響應頭?Content-Type?是否為?application/json

    • 在 Spring Boot 中使用?@RestController?確保 JSON 序列化

  3. 認證問題

    • 在 axios 請求頭中添加 Token:

      js

      復制

      下載

      axios.get('/api/secure', {headers: { 'Authorization': `Bearer ${localStorage.getItem('token')}` }
      })

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/88611.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/88611.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/88611.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入掌握MyBatis:核心解析

一、MyBatis核心架構解析 1. 什么是MyBatis&#xff1f; MyBatis是一款半自動ORM框架&#xff0c;它通過XML或注解將SQL與Java對象映射&#xff0c;提供比Hibernate更靈活的SQL控制能力&#xff0c;同時消除了傳統JDBC的樣板代碼。 2. 核心組件關系圖 3. 核心組件職責 組件…

通達信 超級趨勢強悍 幅圖指標公式

指標用法說明 核心邏輯 該指標通過結合價格趨勢、波動率和支撐阻力分析來識別潛在的買入機會和趨勢轉折點。 主要組成部分 趨勢判斷: 使用19日和7日EMA的交叉判斷趨勢方向 股道_Q_3:19日EMA上穿7日EMA(看漲信號) 股道_Q_4:7日EMA上穿19日EMA(看跌信號) 支撐阻力線: …

knowledge-vue2項目(Electron)打包為PC桌面應用程序

1.使用nvm管理node版本 不同的項目開發需要的node版本環境不一樣,所以需要使用nvm進行版本管理。 關鍵命令: &#xff08;1&#xff09;檢查nvm版本號是否安裝成功 nvm -v &#xff08;2&#xff09;檢查所有node版本號 nvm ls &#xff08;3&#xff09;安裝指定node版…

k8s集群1.18.20更換節點ip地址段需求操作

前期已經部署好一套k8s集群1.18.20版本&#xff0c;1個master&#xff0c;2個node節點&#xff0c;使用節點地址段為192.168.66.0/24&#xff0c;現在因測試任務需要臨時調整到192.168.40.0/24&#xff0c;以下記錄一下相關操作步驟&#xff0c;請供參考學習。 一、環境準備 …

1-BaoStock股票數據下載

一、程序功能 程序基于 baostock 接口實現 A 股股票數據的獲取與存儲&#xff0c;主要功能包括股票列表更新、數據下載與處理。程序通過三個核心函數協同工作&#xff1a; update_stk_list(dateNone)&#xff1a;獲取指定日期的 A 股股票列表&#xff0c;默認使用當日。自動處…

【C/C++】無鎖隊列實現與內存回收機制:Hazard Pointer 深度解析

無鎖隊列實現與內存回收機制&#xff1a;Hazard Pointer 深度解析 在并發系統中&#xff0c;為了提升性能和避免鎖競爭&#xff0c;我們常常追求 lock-free 數據結構。但當你實現完一個無鎖隊列后&#xff0c;會發現一個嚴重問題&#xff1a; 內存什么時候釋放&#xff1f;怎樣…

Scrapy進階封裝(第三階段:多管道封裝,多文件存儲)

1.yield返回數據的原理? 為什么要用yield返回數據給管道&#xff1f; 遍歷這個函數的返回值的時候&#xff0c;挨個把數據讀到內存&#xff0c;不會造成內存的瞬間占用過高&#xff0c;Python3中的range和python2中的xrange同理。scrapy是異步爬取&#xff0c;所以通過yield…

證照大師 MAX 4.0安裝與基礎功能體驗(附流程演示)

軟件介紹 證照大師 MAX 4.0是一款功能強大的證件照制作軟件&#xff0c;專為滿足用戶不同場景下的證件照需求而設計。它整合了專業的照片處理技術和智能化的操作系統&#xff0c;提供了自動摳圖、尺寸調整、美顏處理、批量處理以及格式轉換等多種功能。該軟件用戶界面簡潔明快…

RK3568-適配mipi屏幕觸摸和顯示

1.1 適配mipi屏幕觸摸 gt9xx_lvds: gt9xx-lvds5d {compatible "goodix,gt9xx";reg <0x5d>;pinctrl-names "default";pinctrl-0 <&touch_gpio>;touch-gpio <&gpio1 RK_PA4 IRQ_TYPE_LEVEL_LOW>;reset-gpio <&gpio1…

ICME 2025音頻編碼器能力挑戰賽Workshop即將舉辦!

IEEE International Conference on Multimedia and Expo 2025&#xff08;ICME 2025&#xff09; 將于 6月30日至7月4日在法國南特舉行。作為全球多媒體領域的頂級會議之一&#xff0c;ICME 2025 匯聚全球頂尖學者與產業專家&#xff0c;聚焦人工智能驅動的多媒體技術&#xff…

物奇微WQ5007A上手指南

一、獲取SDK 需要與物奇微電子股份有限公司簽訂NDA協議才會提供SDK。 二、搭建開發環境 SDK里包含了編譯工具、開發文檔、源碼。在windows系統下搭建開發環境&#xff1a; 1、安裝交叉編譯工具 將\wuqi_sdk\tools\riscv64-unknown-elf-gcc-10.2.0-windows.zip文件解壓到任…

[論文閱讀] 人工智能 + 軟件工程 | LLM在單元測試中的應用:系統性綜述與未來展望

LLM在單元測試中的應用&#xff1a;系統性綜述與未來展望 論文信息 arXiv:2506.15227 Large Language Models for Unit Testing: A Systematic Literature Review Quanjun Zhang, Chunrong Fang, Siqi Gu, Ye Shang, Zhenyu Chen, Liang Xiao Subjects: Software Engineering …

數據重疊對CLIP零樣本能力影響CLIP論文圖17筆記

這兩張圖表&#xff08;圖17左、右圖&#xff09;是CLIP論文中驗證“數據重疊是否影響CLIP零樣本能力”的關鍵證據&#xff0c;核心是通過**“數據重疊分析”排除CLIP“作弊”嫌疑**&#xff08;即CLIP的高零樣本準確率是否因為“見過測試集圖像”&#xff09;。下面用“先看懂…

996引擎-假人系統

996引擎-假人系統 lua 假人問題添加假人名字列表打開M2設置假人參考資料 lua 假人問題 添加假人名字列表 假人名字列表 Mir200\Envir\DummyNameList.txt 打開M2設置假人 【選項】>【假人設置】 參考資料 假人系統

Rk3568驅動開發_Key驅動_13

設備樹配置 key{compatible "alientek,key";pinctrl-0 <&key_gpio>;pinctrl-names "alientek,key";key-gpio <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>;status "okay";};配置信息方便后面直接引用&#xff1a; // Narnat 2025…

參展回顧 | AI應用創新場景:數據分析助手ChatBI、璞公英教學平臺亮相2025四川國際職教大會暨產教融合博覽會

2025年6月11日-13日&#xff0c;以“數字賦能產教融合&#xff0c;創新驅動技能未來”為主題的2025四川國際職業教育大會暨產教融合博覽會在成都盛大開幕。璞華聯合百度共同參展&#xff0c;并攜旗下創新產品ChatBI數據分析助手、璞公英教學平臺重磅亮相&#xff0c;憑借前沿的…

動態規劃之01背包問題

動態規劃算法 動態規劃算法介紹 動態規劃(Dynamic Programming)算法的核心思想是&#xff1a;將大問題劃分為小問題進行解決&#xff0c;從而一步步獲取最優解的處理算法動態規劃算法與分治法類似&#xff0c;其基本思想也是將待解決問題分解成若干個子問題&#xff0c;先求解…

人大金倉新建用戶,并且賦值查詢權限

-- 1. 創建用戶 visitor&#xff0c;并且設置密碼 CREATE USER visitor WITH PASSWORD 1234qwer; -- 2. 授予該用戶連接到數據庫 "yonbip_db" 的權限 GRANT CONNECT ON DATABASE yonbip_db TO visitor; -- 3. 假設你要讓 visitor 查詢的模式是 public&#xff08;或…

學習筆記丨信號處理新趨勢:量子計算將如何顛覆傳統DSP?

在算力需求爆炸式增長的今天&#xff0c;傳統數字信號處理&#xff08;DSP&#xff09;芯片正面臨物理極限的嚴峻挑戰。當經典計算機架構在摩爾定律的黃昏中掙扎時&#xff0c;量子計算正以顛覆性姿態崛起&#xff0c;準備重新定義信號處理的未來圖景。 目錄 傳統DSP的瓶頸&am…

react day.js使用及經典場景

簡介 Day.js 是一個輕量級的 JavaScript 日期庫&#xff0c;它提供了簡單易用的 API 來處理日期和時間。以及更加輕量級&#xff0c;并且具有更快的性能。 安裝 npm install dayjs 使用 import dayjs from "dayjs";dayjs().format("YYYY-MM-DD HH:mm:ss&qu…