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

Vue之請求如何傳遞參數

 更新時間:2023年04月05日 09:40:41   作者:IT__learning  
這篇文章主要介紹了Vue之請求如何傳遞參數問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

一、get請求

get請求沒有請求體,傳遞的參數是添加到url字符串的后面:url?name=value&name1=value1。

1、直接拼接

axios({
	method: "get",
	url: "http://localhost:1111/01/zc?yhm=lhj&pwd=123",   //參數拼接在url后面
}).then(function(resp){
	console.log(resp.data)
	})

參數附在url后面

攜帶的參數

2、params屬性

params屬性是將參數添加到url的請求字符串中。

this.axios({
	method:'get',
    params:{
          yhm:"lhj",
          pwd:"123"
          },
    url:'http://localhost:1111/01/zc'
   }).then(function(resp){
          console.log(resp.data);
          that.mes=resp.data;
         })

后端接收代碼

@CrossOrigin(origins = "*",maxAge = 3600)
    @RequestMapping(value = "/zc")
    public String ajax(String yhm,String pwd){
        System.out.println(yhm);
        System.out.println(pwd);
        return "傳參成功";
        }

二、post請求

post請求有請求體,傳遞的參數既可以放在請求體中也可以放在url后面。

1、data屬性傳遞

data是添加到請求體(body)中,該方式傳遞的參數有兩種格式:

(1)application/json格式

  • 前端:該格式data用json字符串進行傳遞參數,數據格式是application/json。
 this.axios({
       method:'post',
       data:{
           name:"lhj",
           age:24
           },
       url:'http://localhost:1111/01/ajax'
      }).then(function(resp){
          console.log(resp.data);
       })

url后面沒有拼接參數

數據格式application/json

請求體數據為json字符串

  • 服務器端接收參數使用 @RequestBody 類名 對象名 或者@RequestBody Map<>map將前端傳來的json數據封裝到一個對象或Map中。
 	@CrossOrigin(origins = "http://localhost:8080",maxAge = 3600)
    @RequestMapping(value = "/ajax",method = RequestMethod.POST)
    public String zhuce(@RequestBody Map<String,Object> user){
        System.out.println(user.get("name"));
        System.out.println(user.get("age"));
        return "傳參成功";
    }

(2)application/x-www-form-urlencoded格式

  • 前端:該格式data用查詢字符串進行傳遞參數,即"name1 = value1&name2 = value2"的形式。

該形式data有兩種傳遞方式:

①直接傳遞字符串

data:"name=lhj&age=123",      //字符串形式

②使用qs.stringify()將json轉換成查詢字符串

data:qs.stringify({name:'lhj',age:24}),
  • 后端接收
	@CrossOrigin(origins = "http://localhost:8080",maxAge = 3600)
    @RequestMapping(value = "/ajax",method = RequestMethod.POST)
    public String zhuce(String name,int age){
        System.out.println(name);
        System.out.println(age);
        return "傳參成功";
    }

2、params屬性傳遞

post請求用該屬性傳遞參數跟get請求一樣,將參數拼接在url之后。

 this.axios({
       method:'post',
       params:{
           name:"lhj"
           },
       url:'http://localhost:1111/01/ajax'
      }).then(function(resp){
          console.log(resp.data);
       })

參數附在url后面

攜帶的參數

后端代碼

@CrossOrigin(origins = "http://localhost:8080",maxAge = 3600)
    @RequestMapping(value = "/ajax",method = RequestMethod.POST)
    public String zhuce(String name){
        System.out.println(name);
        return "傳參成功";
    }

三、常見的 Content-Type 類型

Content-Type叫做MIME(mediaType)類型,使用Content-Type來表示請求和響應中的媒體類型信息。如果是請求頭,它用來告訴服務端如何處理請求的數據,如果是響應頭,它用來告訴客戶端(一般是瀏覽器)如何解析響應的數據。

1、application/x-www-form-urlencoded

這是最常見的 POST 提交數據的方式。瀏覽器的原生 form 表單,如果不設置 enctype 屬性,那么就會以 application/x-www-form-urlencoded 方式提交數據。

請求參數以 key1=val1&key2=val2 的方式進行拼接,并放到請求實體里面,如果是中文或特殊字符等會自動進行URL轉碼。一般用于表單提交

2、multipart/form-data

multipart/form-data 將表單的數據處理為一條消息,以標簽為單元,用分隔符 boundary分開。multipart/form-data 支持文件上傳的格式,一般需要上傳文件的表單則用該類型。

3、application/json

application/json 類型用來告訴服務端消息主體是序列化后的 JSON 字符串,其中一個好處就是JSON 格式支持比鍵值對復雜得多的結構化數據。

前端人員不需要關心數據結構的復雜度,只要是標準的json格式就能提交成功。

由于 JSON 規(guī)范的流行,除了低版本 IE 之外的各大瀏覽器都原生支持JSON.stringify,服務端語言也都有處理 JSON 的函數,使用起來沒有困難。

使用技巧:

Accept 為客戶端希望接受的數據類型,Content-Type 為(客戶端或者服務端)發(fā)送的實體數據的數據類型,兩者是有區(qū)別的,如果服務端返回的類型和客戶端希望接受的數據類型不一致,從而報錯406。

(1)客戶端發(fā)送請求時的 Content-Type 設置如果設置的不準確會導致服務端解析不了,從而報錯415。

(2)服務端響應的 Content-Type 最好也設置準確,亂設置某些情況下可能會有問題,比如導致文件無法下載,客戶端把 json 數據當成文本使用。

(3)如果是一個 restful 接口(json格式),一般將 Content-Type 設置為 application/json;charset=UTF-8

(4)如果是文件上傳,一般 Content-Type 設置為 multipart/form-data

(5)如果普通表單提交,一般 Content-Type 設置為 application/x-www-form-urlencoded。

總結

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

相關文章

  • Vue 根據條件判斷van-tab的顯示方式

    Vue 根據條件判斷van-tab的顯示方式

    這篇文章主要介紹了Vue 根據條件判斷van-tab的顯示方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • VSCode插件安裝完成后的配置(常用配置)

    VSCode插件安裝完成后的配置(常用配置)

    這篇文章主要介紹了VSCode插件安裝完成后的配置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 實現(xiàn)shallowReadonly和isProxy功能示例詳解

    實現(xiàn)shallowReadonly和isProxy功能示例詳解

    這篇文章主要為大家介紹了實現(xiàn)shallowReadonly和isProxy功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • vue3點擊按鈕下載文件功能的代碼實現(xiàn)

    vue3點擊按鈕下載文件功能的代碼實現(xiàn)

    在寫vue項目時,有個需求是點擊表格中某一行的下載按鈕,然后開始下載這一行對應的文件,所以本文小編給大家介紹了使用vue3實現(xiàn)點擊按鈕下載文件功能,文中有詳細的代碼示例供大家參考,需要的朋友可以參考下
    2024-01-01
  • vue中el-date-picker限制選擇7天內&禁止內框選擇

    vue中el-date-picker限制選擇7天內&禁止內框選擇

    項目中需要選擇時間范圍,并且只能選擇當前日期之后的七天,本文就來介紹了vue中el-date-picker限制選擇7天內&禁止內框選擇,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • vue清空數組的幾個方式(小結)

    vue清空數組的幾個方式(小結)

    本文主要介紹了vue清空數組的幾個方式,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • vue3中ace-editor的簡單使用方法實例

    vue3中ace-editor的簡單使用方法實例

    這篇文章主要給大家介紹了關于vue3中ace-editor簡單使用的相關資料,ace-editor是一種代碼編輯器,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • vue路由$router.push()使用query傳參的實際開發(fā)使用

    vue路由$router.push()使用query傳參的實際開發(fā)使用

    在vue項目中我們用函數式編程this.$router.push跳轉,用query傳遞一個對象時要把這個對象先轉化為字符串,然后在接收的時候要轉化為對象,下面這篇文章主要給大家介紹了關于vue路由$router.push()使用query傳參的實際開發(fā)使用,需要的朋友可以參考下
    2022-11-11
  • vue+element搭建后臺小總結 el-dropdown下拉功能

    vue+element搭建后臺小總結 el-dropdown下拉功能

    這篇文章主要為大家詳細介紹了vue+element搭建后臺小總結,el-dropdown下拉功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • vue-router如何實現(xiàn)history模式配置

    vue-router如何實現(xiàn)history模式配置

    這篇文章主要介紹了vue-router如何實現(xiàn)history模式配置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評論