vue3+express聯調接口時報“\“username\“ is required“問題

我用node .js的express框架寫的登錄接口,發現postman可以調通,但是vue3前端報錯
在這里插入圖片描述
vue3
在這里插入圖片描述
我發現是我后端node.js的app.js入口文件中配置的解析前端參數的解析中間件和前端請求頭中的Content-Type配置不一致的原因
解決方案
因為我后端配置解析表單數據的中間件是express.urlencoded({ extended: false }),只能解析application/ x-www-from-urlencoded 格式的表單數據
在這里插入圖片描述
所以第一種方法修改前端,后端不變
前端修改
登錄接口修改添加這2個,如果你所有接口都是這種數據解析
把 “Content-Type”: “application/x-www-form-urlencoded”, 加載請求攔截器里也行,我這里是只說登錄單個接口,所以把 “Content-Type”: "application/x-www-form-urlencoded"這個單獨加到了登錄里面為了測試
在這里插入圖片描述
這是我的請求攔截器和相應攔截器的配置

import axios from 'axios'const http = axios.create({baseURL: 'http://localhost:5000', // 根據你的 Node 服務地址修改timeout: 10000,
})// 請求攔截器
http.interceptors.request.use(config => {// 可以在這里添加 token 等const token = localStorage.getItem('token')if (token) {config.headers.Authorization = `${token}`}// 確保已有 Authorization 頭不被覆蓋// if (token && !config.headers.Authorization) {// config.headers.Authorization = `${token}`;//}// // 如果請求體是對象且尚未設置 Content-Type// if (config.data && typeof config.data === 'object' &&//   !config.headers['Content-Type']) {//   config.//   headers['Content-Type'] = 'application/json;charset=utf-8';// }return config
}, error => {return Promise.reject(error)
})// 響應攔截器
http.interceptors.response.use(response => {console.log("請求成功:", response.config.url, response.data);// 解析JSON數據const data = typeof response.data === 'string' ?JSON.parse(response.data) :response.data;if (data.status && data.status !== 0) { // 0表示成功return Promise.reject(data);}return data;
}, error => {return Promise.reject(error)
})export default http

結果
在這里插入圖片描述
第二種方法修改后端的中間件,前端不變
給后端代碼添加
app.js文件中添加express.json解析application/json的中間件,前端代碼不變

前端代碼 headers[‘Content-Type’] = ‘application/json;charset=utf-8’;可以加可以不加,因為你發送的是一個 JavaScript 對象(credentials),
axios 會自動將請求頭 Content-Type 設置為 application/json
使用 JSON.stringify(credentials) 轉換請求體
在這里插入圖片描述
結果
在這里插入圖片描述

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

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

相關文章

《月亮與六便士》:天才的背叛與凡人救贖的殘酷辯證法

當滿地六便士成了庸人的火葬場??毛姆筆下的斯特里克蘭德,是一把捅穿中產幻夢的利刃。這個拋妻棄子、背叛友人的證券經紀人,在倫敦客廳的茶香與銀勺碰撞聲中,突然聽見了遠方的驚雷——“我必須畫畫”。如書中所言:??“在滿地都…

vue2往vue3升級需要注意的點(個人建議非必要別直接升級)

將 Vue 2 項目升級到 Vue 3 的過程中,需要重點關注以下幾個難點和關鍵點: 建議小項目直接用vue3重寫更快,bug更少 文章目錄1. **Composition API 的學習與應用**2. **全局 API 的變更**3. **模板語法的兼容性變化**4. **組件選項和生命周期的…

聚焦數據資源建設與應用,浙江省質科院赴景聯文科技調研交流

7月10日上午,浙江省質科院標準化中心副主任蔣建平、應珊婷等一行領導帶隊蒞臨景聯文科技調研指導工作。雙方圍繞工業數據展開深度交流。座談會上,景聯文科技詳細匯報了數據資源建設與應用方面的成果與規劃,介紹了公共數據授權運營與對外合作的…

【Linux】系統引導修復

目錄 開機引導過程 一.通電 二.BIOS環境檢測 三.磁盤引導階段 四.文件引導階段 自動引導配置文件丟失修復 內核參數文件丟失修復 內核鏡像文件丟失修復 內核初始化文件丟失修復 boot目錄誤刪丟失修復 開機引導過程 磁盤引導階段 /boot/grub2/grub.cfg #讀取自動引…

2023年全國青少年信息素養大賽C++編程初中組決賽真題+答案解析

2023年全國青少年信息素養大賽C++編程初中組決賽真題+答案解析 編程題 第一題 判斷是否存在重復的子序列 題目描述 從m 個字符中選取字符,生成n 個符號的序列,使得其中沒有2 個相鄰的子序列相同? 如從1,2,3,生成長度為5 的序列,序列“12321”是合格的,而“12323”和“12123”…

MySQL5.78.0鎖表確認及解除鎖表完全指南

目錄 一、MySQL鎖機制基礎 1.1 鎖的分類與作用 1.2 關鍵鎖類型詳解 二、鎖表的常見原因與風險 2.1 引發鎖表的典型場景 2.2 鎖表的業務影響 三、鎖表狀態確認方法 3.1 基礎工具:SHOW PROCESSLIST 3.2 MySQL 8.0鎖信息查詢(推薦) 3.2…

springboot生成pdf方案之dot/html/圖片轉pdf三種方式

文章目錄pdf生成方案dot轉pdfhtml轉pdfopenhtmltopdfaspose-pdf實踐playwright實踐圖片轉pdfApache PDFBox實踐框架場景匹配后記前言:隨著客戶對報告審美的提升,需求也越來越五彩斑斕~ 原有的dot模板已經滿足不了他們了!這篇文章主打列出各種…

前端開發—全棧開發

全棧開發者在面試前端或全棧崗位時,自我介紹需要巧妙融合“技術廣度”與“崗位針對性”,避免成為泛泛而談的“樣樣通樣樣松”。以下是結合面試官關注點和全棧特性的專業介紹策略:🧠 一、自我介紹的核心理念 突出全棧優勢&#xff…

Redis生產環境過期策略配置指南:務實落地,避免踩坑

在生產環境中合理配置Redis過期策略是保障系統穩定性和內存效率的關鍵。以下配置建議基于實戰經驗,避免理論堆砌,直擊核心要點:一、核心策略配置:惰性刪除 定期刪除(默認已啟用)無需額外配置:R…

Ubuntu 20.04 安裝 Node.js 20.x、npm、cnpm 和 pnpm 完整指南

🌐 Ubuntu 20.04 安裝 Node.js 20.x、npm、cnpm 和 pnpm 完整指南 🚀 在本文中,我們將介紹如何在 Ubuntu 20.04 上安裝 Node.js 20.x,以及如何安裝 npm、cnpm 和 pnpm 來提高開發效率 ?。1?? 安裝 Node.js 20.x 為了確保使用最…

【時時三省】(C語言基礎)通過指針引用數組元素

山不在高,有仙則名。水不在深,有龍則靈。 ----CSDN 時時三省引用一個數組元素,可以用下面兩種方法:( 1 )下標法,如a[i]形式;( 2 )指針法,如* ( a i )或* ( p i )。其中a是數組名,p…

Guava LoadingCache

LoadingCache 是 Google Guava 庫提供的一個高級緩存實現,它通過自動加載機制簡化了緩存使用模式。核心特性自動加載機制當緩存未命中時,自動調用指定的 CacheLoader 加載數據線程安全:并發請求下,相同key只會加載一次靈活的過期策…

基于LSTM-GRU模型的黃金價格動態監測:關稅政策與美指的量化關聯研究

摘要:本文通過BERT-Large模型對關稅政策進行語義解析,結合LSTM-GRU混合模型、DCC-GARCH動態相關性模型及蒙特卡洛情景分析,量化解析7月11日黃金價格異動背后的三大驅動因子——政策沖擊、美元指數壓制與美聯儲政策不確定性,提供AI…

V少JS基礎班之第七彈

文章目錄一、 前言二、本節涉及知識點三、重點內容1、prototype2、constructor3、中場回顧&總結4、__ proto__5、第二次中場回顧&總結6、原型鏈6、第三次中場回顧&總結7、原型鏈中的奇點一、 前言 第七彈內容是原型鏈。網絡上原型鏈的資料很多。但是我看了很多篇&…

Nuxt3自動打包及自動修改端口號腳本

Nuxt3自動打包及自動修改端口號腳本技術文章大綱 背景與需求 Nuxt3作為現代Vue框架,開發中常需處理打包部署和端口配置問題。自動化腳本可提升效率,減少手動操作錯誤。 實現自動打包 利用Nuxt3內置命令結合Node.js腳本實現自動化構建。通過npm run build…

紅海云國資案例之多層級工貿集團的一體化HR平臺建設實戰

在中國經濟邁向高質量發展的進程中,國有企業作為重要的經濟支柱和行業引領者,正面臨著數字化轉型的深刻變革。F集團作為G市首家實現工貿一體化運營的大型企業,位列中國輕工業百強,其在人力資源數字化轉型中的探索和實踐&#xff0…

TCP詳解——流量控制、滑動窗口

目錄 流量控制 滑動窗口 丟包重傳 情況一:數據到達,應答丟失 情況二:數據包丟失 流量控制 TCP協議會根據接收端的緩沖區大小來調整發送速度,剩余空間多則發送速度快,否則降低發送速度 接收端將??可以接收的緩…

C#高級特性面試問題的詳細分析,涵蓋核心概念、應用場景和最佳實踐

序列化與反序列化 1. 什么是序列化和反序列化?用途是什么? // 序列化示例 Person person new Person { Name "Alice", Age 30 }; string json JsonSerializer.Serialize(person); // 序列化為JSON// 反序列化示例 Person deserialized Js…

【電腦】內存的基礎知識

內存(Memory)是計算機中用于臨時存儲數據和程序的地方,它直接影響到系統的運行速度和性能。以下是關于內存的詳細知識:1. 內存類型常見的內存類型包括以下幾個主要種類:SDRAM (Synchronous Dynamic Random Access Memo…

Java---IDEA

IDEA概述 IDEA:全稱Intellij IDEA,是用于Java語言開發的集成開發環境 集成環境:把代碼編寫,編譯,運行,調試等多種功能綜合到一起的開發工具 下載與安裝 下載:IntelliJ IDEA – the IDE for …