黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) 一文告訴你Java獲取formdata數(shù)據(jù)的方法

一文告訴你Java獲取formdata數(shù)據(jù)的方法

更新時間:2022-11-07 11:48:03 來源:動力節(jié)點 瀏覽9409次

Java獲取formdata數(shù)據(jù)的方法是什么?動力節(jié)點小編來告訴大家。

1. 概述

FormData類型其實是在XMLHttpRequest 2級定義的,它是為序列化表以及創(chuàng)建與表單格式相同的數(shù)據(jù)(當(dāng)然是用于XHR傳輸)提供便利。

2. 構(gòu)造函數(shù)

創(chuàng)建一個formData對象實例有幾種方式

(1)創(chuàng)建一個空對象實例

var formData = new FormData();

此時可以調(diào)用append()方法來添加數(shù)據(jù)

(2)使用已有的表單來初始化一個對象實例

假如現(xiàn)在頁面已經(jīng)有一個表單

    名字    密碼    

我們可以使用這個表單元素作為初始化參數(shù),來實例化一個formData對象

// 獲取頁面已有的一個form表單var form = document.getElementById("myForm");// 用表單來初始化var formData = new FormData(form);// 我們可以根據(jù)name來訪問表單中的字段var name = formData.get("name"); // 獲取名字var psw = formData.get("psw"); // 獲取密碼// 當(dāng)然也可以在此基礎(chǔ)上,添加其他數(shù)據(jù)formData.append("token","kshdfiwi3rh");

3. 操作方法

首先,我們要明確formData里面存儲的數(shù)據(jù)形式,一對key/value組成一條數(shù)據(jù),key是唯一的,一個key可能對應(yīng)多個value。如果是使用表單初始化,每一個表單字段對應(yīng)一條數(shù)據(jù),它們的HTML name屬性即為key值,它們value屬性對應(yīng)value值。

(1)獲取值

我們可以通過get(key)/getAll(key)來獲取對應(yīng)的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", "v1");formData.get("k1"); // "v1"formData.getAll("k1"); // ["v1","v2","v1"]

(3)設(shè)置修改數(shù)據(jù)

我們可以通過set(key, value)來設(shè)置修改數(shù)據(jù),如果指定的key不存在則會新增一條,如果存在,則會修改對應(yīng)的value值。

formData.append("k1", "v1");formData.set("k1", "1");formData.getAll("k1"); // ["1"]

(4)判斷是否該數(shù)據(jù)

我們可以通過has(key)來判斷是否對應(yīng)的key值

formData.append("k1", "v1");formData.append("k2",null);formData.has("k1"); // trueformData.has("k2"); // trueformData.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"); // []

(6)遍歷

我們可以通過entries()來獲取一個迭代器,然后遍歷所有的數(shù)據(jù)

formData.append("k1", "v1");formData.append("k1", "v2");formData.append("k2", "v1");var i = formData.entries();i.next(); // {done:false, value:["k1", "v1"]}i.next(); // {done:fase, value:["k1", "v2"]}i.next(); // {done:fase, value:["k2", "v1"]}i.next(); // {done:true, value:undefined}

可以看到返回迭代器的規(guī)則

每調(diào)用一次next()返回一條數(shù)據(jù),數(shù)據(jù)的順序由添加的順序決定

返回的是一個對象,當(dāng)其done屬性為true時,說明已經(jīng)遍歷完所有的數(shù)據(jù),這個也可以作為判斷的依據(jù)

返回的對象的value屬性以數(shù)組形式存儲了一對key/value,數(shù)組下標(biāo)0為key,下標(biāo)1為value,如果一個key值對應(yīng)多個value,會變成多對key/value返回

我們也可以通過values()方法只獲取value值

formData.append("k1", "v1");formData.append("k1", "v2");formData.append("k2", "v1");var i = formData.entries();i.next(); // {done:false, value:"v1"}i.next(); // {done:fase, value:"v2"}i.next(); // {done:fase, value:"v1"}i.next(); // {done:true, value:undefined}

4. 發(fā)送數(shù)據(jù)

我們可以通過xhr來發(fā)送數(shù)據(jù)

var xhr = new XMLHttpRequest();xhr.open("post","login");xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xhr.send(formData);

這種方式可以來實現(xiàn)文件的異步上傳。

5. 其他

瀏覽器兼容性查詢:https://caniuse.com/#search=formdata

 

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 日韩最新网址 | 在线亚洲一区 | 久久婷婷一区二区三区 | 任你躁在线精品免费视频网站 | 国产自产视频 | 边做边叫床的大尺度床戏欧美 | 日日狠狠久久偷偷四色综合免费 | 免费香蕉一区二区在线观看 | 欧美日韩精品在线 | 性感美女香蕉视频 | 被男人吃奶很爽的毛片两男一女 | 久久久久香蕉 | 免费黄色小网站 | 日韩伊人网 | 最近免费字幕中文大全视频 | 成人高清视频免费观看 | 国产亚洲一区二区精品张柏芝 | 欧美不卡精品中文字幕日韩 | 8844aa在线毛片 | 性色在线观看 | 日韩欧美亚洲香蕉七次郎 | 成人午夜免费福利视频 | 香蕉久久av一区二区三区 | 456亚洲人成在线播放网站 | 三级黄网站 | 成人嘿嘿视频网站在线 | 天天射天天射天天干 | 日韩欧美在线不卡 | 五月天狠狠干 | 人人揉| 激情久久免费视频 | 欧美一区二区三区精品影视 | 久久国产欧美日韩高清专区 | 涩涩亚洲| 男人的天堂黄色 | 日本不卡视频在线 | 精品成人在线 | 一个人在线观看的免费视频www | 久久久高清日本道免费观看 | 欧美日韩一区不卡 | 欧美一区二区三区成人看不卡 |