Hướng dẫn what is formdata object in javascript? - đối tượng formdata trong javascript là gì?

Giao diện FormData cung cấp một cách để dễ dàng xây dựng một tập hợp các cặp khóa/giá trị biểu thị các trường biểu mẫu và các giá trị của chúng, sau đó có thể dễ dàng gửi bằng phương thức fetch() hoặc XMLHttpRequest.send(). Nó sử dụng cùng một định dạng Một biểu mẫu sẽ sử dụng nếu loại mã hóa được đặt thành "multipart/form-data".FormData interface provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the fetch() or XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data".

Bạn cũng có thể chuyển nó trực tiếp cho hàm tạo

0 nếu bạn muốn tạo các tham số truy vấn theo cách mà
1 sẽ làm nếu sử dụng gửi đơn giản
2.

Một đối tượng thực hiện FormData có thể được sử dụng trực tiếp trong cấu trúc

4, thay vì
5:
6 tương đương với
7.

Lưu ý: Tính năng này có sẵn trong các nhân viên web. This feature is available in Web Workers.

Người xây dựng

8

Tạo một đối tượng FormData mới.

Phương pháp thể hiện

let formData = new FormData();
formData.append('key1', 'value1');
formData.append('key2', 'value2');

// List key/value pairs
for(let [name, value] of formData) {
  alert(`${name} = ${value}`); // key1 = value1, then key2 = value2
}
0

Lối nhiều giá trị mới vào một khóa hiện có bên trong đối tượng FormData hoặc thêm khóa nếu nó chưa tồn tại.

let formData = new FormData();
formData.append('key1', 'value1');
formData.append('key2', 'value2');

// List key/value pairs
for(let [name, value] of formData) {
  alert(`${name} = ${value}`); // key1 = value1, then key2 = value2
}
2

Xóa một cặp khóa/giá trị khỏi đối tượng FormData.

let formData = new FormData();
formData.append('key1', 'value1');
formData.append('key2', 'value2');

// List key/value pairs
for(let [name, value] of formData) {
  alert(`${name} = ${value}`); // key1 = value1, then key2 = value2
}
4

Trả về một tererator lặp lại thông qua tất cả các cặp khóa/giá trị có trong FormData.

let formData = new FormData();
formData.append('key1', 'value1');
formData.append('key2', 'value2');

// List key/value pairs
for(let [name, value] of formData) {
  alert(`${name} = ${value}`); // key1 = value1, then key2 = value2
}
6

Trả về giá trị đầu tiên được liên kết với một khóa đã cho từ trong một đối tượng FormData.

let formData = new FormData();
formData.append('key1', 'value1');
formData.append('key2', 'value2');

// List key/value pairs
for(let [name, value] of formData) {
  alert(`${name} = ${value}`); // key1 = value1, then key2 = value2
}
8

Trả về một mảng của tất cả các giá trị được liên kết với một khóa đã cho từ trong vòng FormData.

Picture:
0

Trả về xem một đối tượng FormData có chứa một khóa nhất định.

Picture:
2

Trả về một trình lặp lặp đi lặp lại thông qua tất cả các khóa của các cặp khóa/giá trị có trong FormData.

Picture:
4

Đặt một giá trị mới cho một khóa hiện có bên trong đối tượng FormData hoặc thêm khóa/giá trị nếu nó chưa tồn tại.

Picture:
6

Trả về một trình lặp lặp lại thông qua tất cả các giá trị có trong FormData.

Thông số kỹ thuật

Sự chỉ rõ
Xmlhttprequest tiêu chuẩn # giao diện-pormdata
# interface-formdata

Tính tương thích của trình duyệt web

Bảng BCD chỉ tải trong trình duyệt

Xem thêm

Chương này là về việc gửi các biểu mẫu HTML: có hoặc không có tệp, với các trường bổ sung, v.v.

Các đối tượng FormData có thể giúp với điều đó. Như bạn có thể đoán, nó là đối tượng để thể hiện dữ liệu biểu mẫu HTML.

Hàm tạo là:

let formData = new FormData([form]);

Nếu phần tử HTML

Picture:
8 được cung cấp, nó sẽ tự động nắm bắt các trường của nó.

Điều đặc biệt về FormData là các phương thức mạng, chẳng hạn như


  

  

  
0, có thể chấp nhận một đối tượng FormData như một cơ thể. Nó được mã hóa và gửi ra với

  

  

  
2.

Từ quan điểm máy chủ, trông giống như một bản gửi biểu mẫu thông thường.

Gửi một biểu mẫu đơn giản

Hãy để gửi một hình thức đơn giản trước.

Như bạn có thể thấy, đó là gần như một lớp lót:

Trong ví dụ này, mã máy chủ không được trình bày, vì nó vượt quá phạm vi của chúng tôi. Máy chủ chấp nhận yêu cầu POST và trả lời người dùng đã lưu.

Phương pháp FormData

Chúng ta có thể sửa đổi các trường trong FormData bằng các phương thức:

  • 
      
    
      
    
      
    
    4 - Thêm trường biểu mẫu với
    
      
    
      
    
      
    
    5 và
    
      
    
      
    
      
    
    6 đã cho
  • 
      
    
      
    
      
    
    7 - Thêm một trường như thể nó là
    
      
    
      
    
      
    
    8, đối số thứ ba
    
      
    
      
    
      
    
    9 đặt tên tệp (không phải tên trường biểu mẫu), vì nó là tên của tệp trong hệ thống tập tin của người dùng,
  • formData.append("image", imageBlob, "image.png");
    0 - Xóa trường với
    
      
    
      
    
      
    
    5 đã cho,
  • formData.append("image", imageBlob, "image.png");
    2 - Nhận giá trị của trường với
    
      
    
      
    
      
    
    5 đã cho,
  • formData.append("image", imageBlob, "image.png");
    4 - Nếu tồn tại một trường với
    
      
    
      
    
      
    
    5 đã cho, trả về
    formData.append("image", imageBlob, "image.png");
    6, nếu không
    formData.append("image", imageBlob, "image.png");
    7

Một biểu mẫu được phép về mặt kỹ thuật để có nhiều trường có cùng


  

  

  
5, do đó, nhiều cuộc gọi đến
formData.append("image", imageBlob, "image.png");
9 thêm các trường giống nhau.

Ngoài ra còn có phương pháp FormData0, với cùng cú pháp với

formData.append("image", imageBlob, "image.png");
9. Sự khác biệt là FormData2 loại bỏ tất cả các trường với

  

  

  
5 đã cho, và sau đó nối thêm một trường mới. Vì vậy, nó đảm bảo có một trường chỉ có một trường có

  

  

  
5 như vậy, phần còn lại giống như
formData.append("image", imageBlob, "image.png");
9:

  • FormData6,
  • FormData7.

Ngoài ra, chúng tôi có thể lặp lại các trường formdata bằng cách sử dụng vòng lặp FormData8:

let formData = new FormData();
formData.append('key1', 'value1');
formData.append('key2', 'value2');

// List key/value pairs
for(let [name, value] of formData) {
  alert(`${name} = ${value}`); // key1 = value1, then key2 = value2
}

Gửi một biểu mẫu với một tệp

Biểu mẫu luôn được gửi dưới dạng


  

  

  
2, mã hóa này cho phép gửi các tệp. Vì vậy, các trường

  

  

  
8 cũng được gửi, tương tự như một bản gửi biểu mẫu thông thường.

Ở đây, một ví dụ với hình thức như vậy:

Picture:

Gửi một biểu mẫu với dữ liệu blob

Như chúng tôi đã thấy trong chương tìm nạp, nó dễ dàng gửi dữ liệu nhị phân được tạo động, ví dụ: một hình ảnh, như fetch()1. Chúng tôi có thể cung cấp nó trực tiếp dưới dạng tham số


  

  

  
0 fetch()3.

Mặc dù vậy, trong thực tế, nó thường thuận tiện để gửi một hình ảnh không riêng biệt, nhưng là một phần của biểu mẫu, với các trường bổ sung, chẳng hạn như tên của tên và các siêu dữ liệu khác.

Ngoài ra, các máy chủ thường phù hợp hơn để chấp nhận các hình thức được mã hóa nhiều phần, thay vì dữ liệu nhị phân thô.

Ví dụ này gửi một hình ảnh từ fetch()4, cùng với một số trường khác, làm hình thức, sử dụng FormData:


  

  

  

Xin lưu ý cách thêm hình ảnh fetch()1:

formData.append("image", imageBlob, "image.png");

Điều đó giống như khi có fetch()7 trong biểu mẫu và khách truy cập đã gửi một tệp có tên fetch()8 (đối số thứ 3) với dữ liệu fetch()9 (đối số thứ 2) từ hệ thống tập tin của họ.

Máy chủ đọc dữ liệu biểu mẫu và tệp, như thể nó là một bản gửi biểu mẫu thông thường.

Bản tóm tắt

Các đối tượng FormData được sử dụng để nắm bắt biểu mẫu HTML và gửi nó bằng cách sử dụng


  

  

  
0 hoặc phương thức mạng khác.

Chúng ta có thể tạo XMLHttpRequest.send()1 từ biểu mẫu HTML hoặc tạo một đối tượng mà không có biểu mẫu, sau đó nối các trường bằng các phương thức:

  • 
      
    
      
    
      
    
    4
  • 
      
    
      
    
      
    
    7
  • FormData6
  • FormData7

Hãy lưu ý hai đặc thù ở đây:

  1. Phương thức FormData0 loại bỏ các trường có cùng tên,
    formData.append("image", imageBlob, "image.png");
    9 không có. Đó là sự khác biệt duy nhất giữa họ.
  2. Để gửi một tệp, cần phải có cú pháp 3-angument, đối số cuối cùng là tên tệp, thông thường được lấy từ hệ thống tập tin người dùng cho
    
      
    
      
    
      
    
    8.

Các phương pháp khác là:

  • formData.append("image", imageBlob, "image.png");
    0
  • formData.append("image", imageBlob, "image.png");
    2
  • formData.append("image", imageBlob, "image.png");
    4

Đó là nó!

Đối tượng FormData trong JS là gì?

Trong JavaScript, một đối tượng FormData là một cách phổ biến để tạo một gói dữ liệu để gửi đến máy chủ bằng XMLHTTPREQUEST hoặc FETCH.Nó sao chép chức năng của phần tử hình thức HTML.Chúng ta có thể nghĩ về nó như một mảng mảng.Có một mảng cho mỗi phần tử mà chúng tôi muốn gửi đến máy chủ.a common way to create a bundle of data to send to the server using XMLHttpRequest or fetch. It replicates the functionality of the HTML form element. We can think of it as an array of arrays. There is one array for each element that we want to send to the server.

Tại sao chúng ta sử dụng FormData trong JavaScript?

Giao diện FormData cung cấp một cách để dễ dàng xây dựng một tập hợp các cặp khóa/giá trị biểu thị các trường biểu mẫu và các giá trị của chúng, sau đó có thể dễ dàng gửi bằng phương thức Fetch () hoặc XMLHttPRequest.Send ().Nó sử dụng cùng một định dạng Một biểu mẫu sẽ sử dụng nếu loại mã hóa được đặt thành "Multipart/Form-dữ liệu".provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the fetch() or XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data" .

Chúng ta có thể gửi đối tượng trong formdata không?

Có bạn có thể, bạn có thể nối vào các đối tượng FormData., you can append to formData objects.

Formdata () trong React là gì?

Dữ liệu mẫu React là một hỗn hợp phản ứng cho phép bạn lấy dữ liệu từ dạng HTML ở định dạng đối tượng JavaScript đẹp.a React mixin that will allow you to get data from an html form in a nice javascript object format.