使用axios post發送formdata請求

axios 是一個基於 Promise 的 HTTP 客戶端,可以用在瀏覽器和 node.js 中。axios最常用的是進行get和post請求,本文將重點介紹axios發送post請求時如何使用formData作為請求體,並附上相應的代碼示例。

一、axios介紹

axios 是一個基於 Promise 的 HTTP 客戶端,可以用在瀏覽器和 node.js 中。axios是一個很好用的http請求庫,支持請求和響應的攔截器、自定義請求頭等功能,而且功能完善,用法簡單。axios是一款基於Promise的異步AJAX庫。

二、使用axios發送post請求

發送post請求前,我們先介紹如何使用axios發送post請求。axois發送post請求的格式如下:

axios.post(url[, data[, config]])

其中url是請求地址,data是請求參數,config是配置項,例如headers等。以下是一個實現post請求的示例:

import axios from 'axios';

axios.post('/user', {
  firstName: 'John',
  lastName: 'Doe'
})
.then(function (response) {
  console.log(response);
})
.catch(function (error) {
  console.log(error);
});

上面的代碼發送了一個post請求,請求的地址是/user,請求參數是firstName和lastName。

三、使用formData作為post請求體

接下來介紹如何使用FormData作為post請求體。在實際項目中,上傳文件時常常需要使用form-data格式,這種格式在使用axios封裝進行上傳時十分關鍵。

FormData的API介紹:

  • FormData.append(name, value [, filename]):向formData對象中添加一個鍵值對。如果某個鍵對應的值是一個Blob或者File對象,那麼需要通過第三個參數fileName指定文件名;
  • FormData.delete(name):刪除formData對象中某個鍵的值;
  • FormData.entries():返回一個由所有鍵值對組成的迭代器;
  • FormData.get(name):返回formData對象中某個鍵的值;
  • FormData.getAll(name):返回formData對象中某個鍵的所有值;
  • FormData.has(name):判斷formData對象中是否存在某個鍵;
  • FormData.keys():返回一個由所有鍵組成的迭代器;
  • FormData.set(name, value [, filename]):設置formData對象中某個鍵的值。

下面是一個使用formData作為請求體的示例:

import axios from 'axios';

const formData = new FormData();
formData.append('username', 'johndoe');
formData.append('password', '123456');
formData.append('avatar', file, 'avatar.jpg');

axios.post('/user', formData, {
  headers: {
    'Content-Type': 'multipart/form-data'
  }
})
.then(function (response) {
  console.log(response);
})
.catch(function (error) {
  console.log(error);
});

以上示例中,請求參數包含了一個username和password,另外還有一個上傳的文件avatar。

四、完整示例代碼:

import axios from 'axios';

const formData = new FormData();
formData.append('username', 'johndoe');
formData.append('password', '123456');
formData.append('avatar', file, 'avatar.jpg');

axios.post('/user', formData, {
  headers: {
    'Content-Type': 'multipart/form-data'
  }
})
.then(function (response) {
  console.log(response);
})
.catch(function (error) {
  console.log(error);
});

以上代碼可以用於在axios中使用FormData作為請求體進行post請求。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/185368.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-26 12:17
下一篇 2024-11-26 12:18

相關推薦

  • 使用axios獲取返回圖片

    使用axios獲取返回圖片是Web開發中很常見的需求。本文將介紹如何使用axios獲取返回圖片,並從多個方面進行詳細闡述。 一、安裝axios 使用axios獲取返回圖片前,首先需…

    編程 2025-04-29
  • Axios請求數據亂碼問題解決

    本文將從以下三個方面詳細闡述Axios請求數據亂碼問題的原因和解決方法: 一、設置請求頭 Axios請求數據亂碼的原因可能是因為請求時沒有設置請求頭的編碼方式,而且默認的編碼方式是…

    編程 2025-04-28
  • HTTP請求方式的選擇:POST還是GET?

    對於使用xxl-job進行任務調度的開發者,通常需要發送HTTP請求來執行一些任務。但是在發送請求時,我們總是會遇到一個問題:是使用POST還是GET?下面將從多個方面對這個問題進…

    編程 2025-04-27
  • 如何解決運行過程中的post-install問題

    一、post-install問題的定義 在編寫軟件程序時,通常需要進行一些額外的配置和設置,以確保軟件在其他系統中運行正常。其中一項設置是安裝軟件包,並在安裝後運行一個腳本來完成針…

    編程 2025-04-27
  • 解決js ajax post 419問題

    對於使用ajax post請求時出現的419問題,我們需要進行以下幾個方面的闡述,包括返回碼的含義、可能出現的情況、解決方案等內容。 一、解析419返回碼 419返回碼錶示用戶超時…

    編程 2025-04-27
  • axios body傳參詳解

    在前端開發中,我們經常與後台進行數據交互,其中一個很重要的環節就是數據傳參。而axios是目前非常優秀的一款前端HTTP請求庫,它可以輕鬆實現不同方式的數據傳參,本文將以axios…

    編程 2025-04-25
  • Axios的優點:為什麼它是當前最受歡迎的HTTP請求庫

    從2014年Axios隨着Vue.js的發佈而出現以來,Axios已經成為了以 Node.js 為平台的一個廣泛應用的輕量級的 HTTP 請求客戶端。雖然還有其他的HTTP請求庫,…

    編程 2025-04-24
  • FormData轉Json

    一、JsonArray轉List 在處理Json數據時,常常會碰到JsonArray類型的數據,而Java通常需要將這些數組轉換成List類型,以便於後續操作。下面是一個將Json…

    編程 2025-04-23
  • axios面試題詳解

    一、axios簡介 axios是一個基於Promise的HTTP客戶端,可以用於瀏覽器和Node.js環境中發送請求。它具有以下幾個特點: 1、支持瀏覽器和Node.js //ax…

    編程 2025-04-23
  • axios.put詳解

    一、基本介紹 axios是一個基於Promise的HTTP客戶端,可用於瀏覽器和node.js。 axios的特點: 從瀏覽器中創建XMLHttpRequests 從node.js…

    編程 2025-04-23

發表回復

登錄後才能評論