欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue中使用axios調(diào)用后端接口的坑及解決

 更新時間:2022年03月29日 13:59:14   作者:許少年的讀書筆記  
這篇文章主要介紹了Vue中使用axios調(diào)用后端接口的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

axios調(diào)用后端接口的坑

問題場景

Vue.js工程中使用axios調(diào)用后端接口(SpringBoot構(gòu)建)出現(xiàn)后端接口無法獲得數(shù)據(jù)的情況

總結(jié)了如下場景

@RequestParam用來處理application/x-www-form-urlencoded編碼(HTTP協(xié)議請求頭中不指定Content-Type默認(rèn)就是application/x-www-form-urlencoded)。

@RequestParam可以接受簡單類型的屬性,也可以接受對象類型的屬性,實質(zhì)就是將Request.getParameter()中的鍵值對Map利用Spring的轉(zhuǎn)化機制ConversionService配置,轉(zhuǎn)化成參數(shù)接受對象或者字段。

@RequestParam在GET請求中是QueryString的形式,POST請求BodyData的值都會被Servlet接受并轉(zhuǎn)化為Request.getParameter()參數(shù)集中。

@RequestParam在POST請求指定Content-Type為application/json;charset=UTF-8時會出現(xiàn)400錯誤。

@RequestParam不能使用@RequestParam JSONObject params接受參數(shù),否則會出現(xiàn)500錯誤。

@RequestParam前端不能使用JSON.stringify()格式化參數(shù),可以使用axios中的QS代替:QS.stringify()。

@RequestBody用來處理HTTPEntity(HTTP實體,HttpEntity實體即可以使流也可以使字符串形式)傳遞過來的數(shù)據(jù),一般用于處理非application/x-www-form-urlencoded編碼。

GET請求沒有HTTPEntity所以@RequestBody并不適用,否則參數(shù)會亂碼導(dǎo)致400錯誤。

在POST請求中使用@RequestBody時,通過HTTPEntity傳遞參數(shù),必須要在HTTP請求頭設(shè)置Content-Type為application/json;chatset=UTF-8,否則會出現(xiàn)415錯誤,SpringMVC通過使用HandlerAdapter配置HTTPMessageConverter來解析HTTPEntity中的數(shù)據(jù),然后綁定到Bean上。

在POST請求使用@RequestBody時,前端必須使用JSON.stringify()格式化為JSON字符串?dāng)?shù)據(jù)。

注解支持類型支持的請求類型支持的Content-Type請求頭類型
@PathVariableURLGETALL
@RequestParamURLGETALL
@RequestParamBodyALLapplication/form-data, application/x-form-www-urlencoded
@RequestBodyBodyALLaplication/json

調(diào)用后端接口 使用axios跨域問題

找到項目中vue.config.js

修改 devserver

devserver /api/app  等于 /https://www.lifewhw.top/app,

devserver下 配置ip 端口沒問題 換成域名訪問接口時如出現(xiàn) Access-Control-Allow-Origin   跨域問題

去后端 請求頭 設(shè)置 access-control-allow-origin: '*'

親測有效!

1.如果調(diào)用一次axios 發(fā)送了兩條get 請求 并且 其中一條狀態(tài)碼為301 說明是重定向 瀏覽器幫你從新發(fā)送了請求(原因是你前端路由配置的和后端不同,我是因為少配置了/出現(xiàn)發(fā)送兩次get請求 其中一次為301)

2. 還有一沖情況就是 兩次請求 第一次的請求頭為options 這個原因自行百度一大推 

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue中控制v-for循環(huán)次數(shù)的實現(xiàn)方法

    Vue中控制v-for循環(huán)次數(shù)的實現(xiàn)方法

    今天小編就為大家分享一篇Vue中控制v-for循環(huán)次數(shù)的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 淺談Vue的基本應(yīng)用

    淺談Vue的基本應(yīng)用

    本文主要介紹了Vue的基本應(yīng)用。具有一定的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • :visible.sync 的作用詳解

    :visible.sync 的作用詳解

    我們在前端開發(fā)中經(jīng)??吹?visible.sync這種修飾符,很多人不知道這是干什么的,在使用ElementUI的時候,里面有個彈窗el-dialog組件的時候會有用到:visible.sync,今天小編帶領(lǐng)大家學(xué)習(xí)下:visible.sync 的作用,感興趣的朋友一起看看吧
    2022-11-11
  • vue組件中傳值EventBus的使用及注意事項說明

    vue組件中傳值EventBus的使用及注意事項說明

    這篇文章主要介紹了vue組件中傳值EventBus的使用及注意事項說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue+element加入簽名效果(移動端可用)

    vue+element加入簽名效果(移動端可用)

    這篇文章主要介紹了vue+element加入簽名效果(移動端),本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • 一文搞定vue3中的函數(shù)式彈窗

    一文搞定vue3中的函數(shù)式彈窗

    函數(shù)式彈窗是一種使用函數(shù)來創(chuàng)建彈窗的技術(shù),它可以簡化彈窗的使用,只需要在需要彈窗的地方調(diào)用函數(shù)就可以了,下面我們就來看看vue3中函數(shù)式彈窗的具體應(yīng)用吧
    2024-01-01
  • 簡單談一談Vue中render函數(shù)

    簡單談一談Vue中render函數(shù)

    vue中的render函數(shù),它返回的是一個虛擬節(jié)點vnode,也就是我們要渲染的節(jié)點,下面這篇文章主要給大家介紹了關(guān)于Vue中render函數(shù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • vue3將頁面生成pdf導(dǎo)出的操作指南

    vue3將頁面生成pdf導(dǎo)出的操作指南

    最近工作中有需要將一些前端頁面(如報表頁面等)導(dǎo)出為pdf的需求,下面這篇文章主要給大家介紹了關(guān)于vue3 如何將頁面生成 pdf 導(dǎo)出,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Vue代碼整潔之去重方法整理

    Vue代碼整潔之去重方法整理

    在本篇文章里小編給大家整理的是關(guān)于Vue代碼整潔之去重的相關(guān)知識點內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-08-08
  • vue之保留小數(shù)點兩位小數(shù) 使用filters(過濾器)

    vue之保留小數(shù)點兩位小數(shù) 使用filters(過濾器)

    這篇文章主要介紹了vue之保留小數(shù)點兩位小數(shù) 使用filters(過濾器),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論