国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

@PathVariable、@PathParam、@RequestBody接收axios傳遞的請求參數(shù);后端接收前端傳遞過來的參數(shù)

這篇具有很好參考價值的文章主要介紹了@PathVariable、@PathParam、@RequestBody接收axios傳遞的請求參數(shù);后端接收前端傳遞過來的參數(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一、前言 :Content-Type 類型

? ?(1)、?application/x-www-form-urlencoded 類型

(2)、application/json 類型

二、@PathVariable

二、@PathParam?

三、@RequestBody

?四、后端發(fā)送數(shù)據(jù)給前端

五、注意事項


一、前言 :Content-Type 類型

 

? ?(1)、?application/x-www-form-urlencoded 類型

? ? ? ? 請求參數(shù)以key-value的形式傳輸

(2)、application/json 類型

? ? ? ? 請求參數(shù)以JOSN串的形式傳輸

? ? ? ? axios的Content-Type 類型 默認是application/json 類型

? ? ? ? ?。。∏昂蠖藬?shù)據(jù)傳輸Content-Type 類型必須一致

二、@PathVariable

@PathVariable接收數(shù)據(jù)和Content-Type 類型無關(guān)。

@PathVariable接收的是請求路徑中的參數(shù)

前端axios代碼(get):

function Vget(){
   let str="發(fā)送數(shù)據(jù)V--get";
    axios({
      url:`http://localhost:8081/v/${str}`,
      method:'get',
    });
  }

后端代碼(get):

(log.info是日志打印,就是sout)

@RequestMapping(value = "/v/{str}",method = RequestMethod.GET)
    public String GetVtest(@PathVariable("str") String str){
        log.info("請求接入v----GET____________________________________________________ ");
        log.info("str:{}",str);
        return "V-GET";
    }

post請求

前端(post):

 function VPost(){
      let str="發(fā)送數(shù)據(jù)V--post";
      axios({
        url:`http://localhost:8081/v/${str}`,
        method:'post',
      });
    }

后端(post)

  @RequestMapping(value = "/v/{str}",method = RequestMethod.POST)
    public String PostVtest(@PathVariable("str") String str){
        log.info("請求接入v----POST____________________________________________________ ");
        log.info("str:{}",str);
        return "V-POST";
    }

總結(jié):

優(yōu)點:無論是get還是post請求都是傳遞參數(shù)

缺點:不能傳遞帶 “/” 的數(shù)據(jù)、不能傳遞對象、只能傳遞簡單的數(shù)據(jù)

用途:可以在“修改”操作的時候傳遞user的id

二、@PathParam?

@PathParam?接收數(shù)據(jù)的Content-Type 類型需要是application/x-www-form-urlencoded 類型

而axios中默認是application/json 類型。

需要引入qs (當(dāng)然更改Content-Type也行,推薦直接使用qs)

引入qs (axios自帶,不用而外下載)

import qs from 'qs'

前端(get)

   function Pget(){
      let str="發(fā)送數(shù)據(jù)P--get";
      let str2="get";
      axios({
        url:`http://localhost:8081/p`,
        method:'get',
        data:qs.stringify({str:str,str2:str2}) //get請求無法傳輸參數(shù)
      });
    }

后端(get)

  @RequestMapping(value = "/p",method = RequestMethod.GET)
    public String GetPtest(@PathParam("str") String str,@PathParam("str2") String str2){
        log.info("請求接入P----GET____________________________________________________ ");
        log.info("str:{}",str);
        return "P-GET";
    }

注意:axios的get請求是不能傳遞請求體中的參數(shù)的,所以后端接收時候str和str2都是 “null”

?POST方式

才能傳遞請求體中的參數(shù)

前端(POST)?

function Ppost(){
      let str="發(fā)送/數(shù)/據(jù)P--post";
      let str2="pos/t";
      axios({
        url:`http://localhost:8081/p`,
        method:'post',
        data:qs.stringify({str:str,str2:str2})
      });
    }

后端(post)

  @RequestMapping(value = "/p",method = RequestMethod.POST)
    public String PostPtest(@PathParam("str") String str,@PathParam("str2") String str2){
        log.info("請求接入P----POST ____________________________________________________");
        log.info("str:{}",str);
        return "P-POST";
    }

總結(jié)

優(yōu)點:可以傳遞對象類型,參數(shù)內(nèi)容帶 “/” 也能傳輸

缺點:需要前后端協(xié)調(diào)清楚(稍微key不一樣就不能接收到value)?

?在與后端交互過程qs會把Content-Type 改變成application/x-www-form-urlencoded類型

雖然瀏覽器請求頭中依舊是application/json 類型,實際是改變了

三、@RequestBody

@RequestBody接收數(shù)據(jù)的Content-Type 類型需要是application/json 類型

且請求方式需要是POST類型

前端(POST)

  function Rpost(){
      let str="P";
      let str2="post色地方";
      //let str={sd:'sdw'};
      axios({
        url:'http://localhost:8081/r',

        method:'post',
        data:{
          str:str,
          str2:str2
        }
      });
    }

后端(POST)

@RequestMapping(value = "/r",method = RequestMethod.POST)
    public String PostRtest(@RequestBody Map<Object,Object> map){

        log.info("請求接入R----POST____________________________________________________ ");
        log.info("map:{}",map);
        return "sdjw";
    }

總結(jié)

優(yōu)點:省事

缺點:后端類型不匹配錯誤 會報400、415 錯誤

?四、后端發(fā)送數(shù)據(jù)給前端

介紹了后端接收前端數(shù)據(jù),那也簡單說一下后端發(fā)送數(shù)據(jù)給前端吧(其實我其他博客有說過)

發(fā)送的數(shù)據(jù)需要是json,所以要引入依賴

<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.26</version>
</dependency>

后端

    @ResponseBody
    @RequestMapping(value = "/user",method = RequestMethod.GET)
    public String User(){

      Temp temp=new Temp(); //自定義的Temp類
      temp.setStr("數(shù)據(jù)1");
      temp.setStr2("數(shù)據(jù)2");

        //JSON.toJSONString 把對象轉(zhuǎn)化成JSON串
        return JSON.toJSONString(temp);
    }

前端

   function getUser(){
      axios({
        url:'http://localhost:8081/user'
      }).then((data)=>{
        console.log("接收到參數(shù)")
        console.log(data.data);
      }).catch((e)=>{
        console.log("出現(xiàn)錯誤");
        console.log(e.msg);
      })
    }

五、注意事項

2、后端使用@RequestBody時候出現(xiàn)

前端axios出現(xiàn)

Request failed with status code 400
Request failed with status code 415

報錯的時候檢查

(1)axios請求體中data有沒有寫錯(是不是寫成了date)

(2)后端接收類型是否匹配(推薦直接使用map或者String)

(3)檢查請求方式是不是POST

? ?(4) vue有沒有配置跨域(解決跨域可以看看其他博主的)

2、后端使用@PathParam 接收時候出現(xiàn) null

(1)檢查data是不是寫錯了(是不是寫成了date)

(2)檢查axios發(fā)送請求方式是不是POST

(3)檢查前后端的參數(shù)key是不是相同

(4)檢查data有沒有使用qs

3、個人感想

? ? ? ? ? 每次寫項目中前后端的交互總會出現(xiàn)一點小問題,每次都要暫停思路來檢查這種小問題,

這是很讓人浮躁的,今天花了一下午試錯和查找解決辦法,我上面提到的是最簡單的解決辦法了。

總之一句話:學(xué)習(xí)過程不要好高騖遠因小失大




發(fā)現(xiàn)錯誤歡迎在評論區(qū)指出文章來源地址http://www.zghlxwxcb.cn/news/detail-799837.html

到了這里,關(guān)于@PathVariable、@PathParam、@RequestBody接收axios傳遞的請求參數(shù);后端接收前端傳遞過來的參數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • @RequestBody接收不到前端傳遞過來的json數(shù)據(jù)

    @RequestBody接收不到前端傳遞過來的json數(shù)據(jù)

    我剛開始只是寫@RequestBody ParkingRecord parkingRecord 一直獲取的都是null, 直到用了Map標簽才終于獲取到參數(shù)了 獲取到map的key,就可以獲取值了 有人說是前后端參數(shù)名稱不一致:在實體類的屬性上加一個注解 然而這個沒有解決我的問題 也有人說是因為lombok的問題,自己用idea的快捷

    2024年02月12日
    瀏覽(26)
  • 在Vue中使用axios發(fā)送post請求時,可能會出現(xiàn)后端無法接收到參數(shù)的情況。

    在Vue中使用axios發(fā)送post請求時,可能會出現(xiàn)后端無法接收到參數(shù)的情況。這個問題的原因是axios默認發(fā)送的請求是json格式的,而后端接收的請求是form表單格式的,這就導(dǎo)致后端無法獲取json格式的請求參數(shù)。解決這個問題可以通過設(shè)置axios的請求頭部信息,將請求格式設(shè)置為

    2024年02月16日
    瀏覽(19)
  • vue3使用axios發(fā)送post請求,后臺接收到的參數(shù)總是null,使用postman測試后臺是能接收數(shù)據(jù)的

    使用vue3,連基本的請求都失敗了,使用瀏覽器查看post請求,參數(shù)中是有值,但是傳到后臺,每個參數(shù)都是null,不知道哪里錯了。排除了后臺的錯誤,就剩下了vue代碼的錯誤了。我出錯的地方是vue使用axios發(fā)送post請求的時候,參數(shù)格式寫錯了。 直接貼代碼了,正確的寫法 f

    2024年02月13日
    瀏覽(23)
  • 【Vue框架】Vue2中axios發(fā)送請求—安裝axios、配置全局域名、傳遞參數(shù)、axios原理之Promise(什么是Promise、使用原因、基本使用、相關(guān)API、async與await使用)

    【Vue框架】Vue2中axios發(fā)送請求—安裝axios、配置全局域名、傳遞參數(shù)、axios原理之Promise(什么是Promise、使用原因、基本使用、相關(guān)API、async與await使用)

    官網(wǎng): https://www.axios-http.cn/ 1.1.1 安裝axios庫 安裝 axios 通信庫: npm install axios -S 1.1.2 在全局中引入axios庫 全局在main.js中引入axios: import axios from \\\'axios\\\' 1.1.3 掛在原型對象 Vue.prototype.$axios = axios; 將 axios 掛載到Vue原型對象中,實現(xiàn)數(shù)據(jù)共享,節(jié)約內(nèi)存空間。 此時在任何頁面都可

    2024年02月05日
    瀏覽(25)
  • 關(guān)于postman傳遞兩個參數(shù)@RequestBody注解只能有一個!

    關(guān)于postman傳遞兩個參數(shù)@RequestBody注解只能有一個!

    1.一個bean一個集合,集合前面必須加注解 ?postman的傳參寫法 ?========================================================================= 2.一個bean和一個數(shù)組,數(shù)組前面是不用加注解的也可以接收的上 postman傳參 ? ?

    2024年02月11日
    瀏覽(18)
  • @RequestParam @RequestBody @PathVariable用法詳解

    三個注解都是在我們進行請求時對服務(wù)端參數(shù)進行封裝的,那么具體三個注解的使用,什么情況下,什么條件下使用呢? @RequestParam接收的參數(shù)是來自于RequestHeader中,即請求頭。 @RequestParam用來處理 Content-Type 為 application/x-www-form-urlencoded 編碼的內(nèi)容,Content-Type默認為該屬性。

    2024年02月13日
    瀏覽(22)
  • @ResponseBody 和 @RequestBody以及@PathVariable的作用

    @ResponseBody是作用在方法上的,@ResponseBody 表示該方法的返回結(jié)果直接寫入 HTTP response body 中,一般在異步獲取數(shù)據(jù)時使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析為跳轉(zhuǎn)路徑,但是加上 @ResponseBody 后返回結(jié)果不會被解析為跳轉(zhuǎn)路徑,而是直接寫入 HTTP response bo

    2024年02月08日
    瀏覽(17)
  • 深入剖析@RequestBody、@PathVariable和@RequestParam注解

    當(dāng)我們在開發(fā)服務(wù)端方法時,遇到給方法傳參的有幾個不同的注解,今天我們來介紹 @RequestBody 、 @PathVariable 和 @RequestParam 這幾個注解的定義和使用場景示例,以便于同學(xué)們理解和掌握。 @RequestBody 注解: 定義: @RequestBody 注解用于從請求體中獲取數(shù)據(jù),并將其轉(zhuǎn)換為指定的對

    2024年02月09日
    瀏覽(23)
  • vue+axios 向后端SpringBoot傳遞List 后端使用List接收

    vue+axios 向后端SpringBoot傳遞List 后端使用List接收

    困擾了一天的問題第二天終于解決了! 一開始是這樣向后端傳的:(主要看后面的seats) 結(jié)果報錯了: 在網(wǎng)上找了好多解決方法,有說參數(shù)太長,超過了Tomcat的限制了怎么的,反正是沒有解決。 直接上解決方法吧。 前端代碼: ?后端代碼: 最后附上我自己的: 前端代碼:

    2024年02月03日
    瀏覽(19)
  • axios傳遞參數(shù)的使用

    今天在學(xué)習(xí)elasticsearch時,遇到一個問題:項目中前端采用的是Vue2+axios,后端的接口采用Restful風(fēng)格來接收: 關(guān)于Resultful風(fēng)格: 1. GET(SELECT):從服務(wù)器取出資源(一項或多項); 2. POST(CREATE):在服務(wù)器新建一個資源; 3. PUT(UPDATE):在服務(wù)器更新資源(客戶端提供改變

    2023年04月24日
    瀏覽(12)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包