Postman的FormData傳參的使用示例詳解
今年上半年因為做畢設的原因,有自己接觸到后端,也是用過了postman去測試接口,看到了postman那邊的參數(shù)形式,一直對這個formData有想法。
在做畢設前后端對接接口過程中,一般get或者delete請求我都會使用url拼接的形式,因為根據(jù)restAPI格式,這兩者我基本上都是拿來獲取某個東西的詳情信息,或者刪除某個東西的詳情信息,而至于最經(jīng)常使用到的post請求,我一般使用的都是采取json格式的語法進行傳參在json里前端只要傳過去對應的對象即可,但是一直對于這個formData這個傳參方式有點誤解,聽名字感覺像是表單傳參過去的。
一.創(chuàng)建一個formData對象實例的方式
1、創(chuàng)建一個空對象
var formData = new FormData();//通過append方法添加數(shù)據(jù)
2、使用已有表單來初始化對象
//表單示例 <form id="myForm" action="" method="post"> <input type="text" name="name">名字 <input type="password" name="psw">密碼 <input type="submit" value="提交"> </form> //方法示例 // 獲取頁面已有的一個form表單 var form = document.getElementById("myForm"); // 用表單來初始化 var formData = new FormData(form); // 我們可以根據(jù)name來訪問表單中的字段 var name = formData.get("name"); // 獲取名字 var psw = formData.get("psw"); // 獲取密碼 // 當然也可以在此基礎上,添加其他數(shù)據(jù) formData.append("token","kshdfiwi3rh");
二. 操作方法
formData里面存儲的數(shù)據(jù)是以健值對的形式存在的,key是唯一的,一個key可能對應多個value。
如果是使用表單初始化,每一個表單字段對應一條數(shù)據(jù),它們的HTML name屬性即為key值,它們value屬性對應value值。
1.獲取值
//通過get(key)/getAll(key)來獲取對應的value formData.get("name"); // 獲取key為name的第一個值 formData.get("name"); // 返回一個數(shù)組,獲取key為name的所有值
2 添加數(shù)據(jù)
//通過append(key, value)來添加數(shù)據(jù),如果指定的key不存在則會新增一條數(shù)據(jù),如果key存在,則添加到數(shù)據(jù)的末尾 formData.append("k1", "v1"); formData.append("k1", "v2"); formData.append("k1", "v3");
獲取值時方式及結(jié)果如下:
formData.get("k1"); // "v1"
formData.getAll("k1"); // ["v1","v2","v3"]
3.設置修改數(shù)據(jù)
//set(key, value)來設置修改數(shù)據(jù),如果指定的key不存在則會新增一條,如果存在,則會修改對應的value值 formData.append("k1", "v1"); formData.set("k1", "1"); formData.getAll("k1"); // ["1"]
4.判斷是否存在對應數(shù)據(jù)
//has(key)來判斷是否對應的key值 formData.append("k1", "v1"); formData.append("k2",null); formData.has("k1"); // true formData.has("k2"); // true formData.has("k3"); // false
5.刪除數(shù)據(jù)
//delete(key)刪除數(shù)據(jù) formData.append("k1", "v1"); formData.append("k1", "v2"); formData.append("k1", "v1"); formData.delete("k1"); formData.getAll("k1"); // []
三.JQuery實例
//添加數(shù)據(jù)方式見上二。 //processData: false, contentType: false,多用來處理異步上傳二進制文件。 $.ajax({ url: 'xxx', type: 'POST', data: formData, // 上傳formdata封裝的數(shù)據(jù) dataType: 'JSON', cache: false, // 不緩存 processData: false, // jQuery不要去處理發(fā)送的數(shù)據(jù) contentType: false, // jQuery不要去設置Content-Type請求頭 success:function (data) { //成功回調(diào) console.log(data); } });
·
/** * 將以base64的圖片url數(shù)據(jù)轉(zhuǎn)換為Blob文件格式 * @param urlData 用url方式表示的base64圖片 */ function convertBase64UrlToBlob(urlData) { var bytes = window.atob(urlData.split(',')[1]); //去掉url的頭,并轉(zhuǎn)換為byte //處理異常,將ascii碼小于0的轉(zhuǎn)換為大于0 var ab = new ArrayBuffer(bytes.length); var ia = new Uint8Array(ab); for(var i = 0; i < bytes.length; i++) { ia[i] = bytes.charCodeAt(i); } return new Blob([ab], { type: 'image/png' }); }
以上是我對FormData的理解和使用。
到此這篇關(guān)于Postman的FormData傳參用法詳解的文章就介紹到這了,更多相關(guān)Postman的FormData傳參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用原生JavaScript實現(xiàn)造日歷輪子實例代碼
這篇文章主要給大家介紹了關(guān)于如何利用原生JavaScript實現(xiàn)造日歷輪子的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用JavaScript具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-05-05JavaScript雙向鏈表實現(xiàn)LRU緩存算法的示例代碼
本文主要介紹了JavaScript雙向鏈表實現(xiàn)LRU緩存算法的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01javascript 節(jié)點排序?qū)崿F(xiàn)代碼
為了讓自定義選擇選擇出的節(jié)點集合盡可能接近原生API選出的結(jié)果,我們往往要對結(jié)果集進行排序,此順序當然是從上到下,從左到右的DOM樹順序。2011-01-01淺談JavaScript的push(),pop(),concat()方法
下面小編就為大家?guī)硪黄獪\談JavaScript的push(),pop(),concat()方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06