본문 바로가기

JAVASCRIPT

javascript FormData 사용 방법

반응형

FormData 객체는 HTML5에서 추가된 JavaScript 객체로, 웹 폼(form) 데이터를 쉽게 다룰 수 있도록 하는 객체입니다. 폼 데이터를 쉽게 다룰 수 있도록 해주기 때문에, 서버와의 통신에서 매우 유용하게 사용됩니다.

FormData 객체를 생성하기 위해서는 new FormData()를 사용하면 됩니다. 생성된 FormData 객체에는 append() 메서드를 사용하여 데이터를 추가할 수 있습니다. append() 메서드는 두 개의 매개변수를 받는데, 첫 번째 매개변수는 데이터의 이름(name)을, 두 번째 매개변수는 데이터의 값(value)을 받습니다. 이렇게 추가된 데이터는 name과 value 형태로 저장됩니다.

 

const formData = new FormData();
formData.append('name1', 'value1');
formData.append('name2', 'value2');

 

 

생성된 FormData 객체는 XMLHttpRequest나 fetch API를 사용하여 서버로 전송할 수 있습니다. XMLHttpRequest를 사용한 예제 코드는 아래와 같습니다.

 

const xhr = new XMLHttpRequest();
xhr.open('POST', '/submit-form');
xhr.send(formData);

 

 

fetch API를 사용한 예제 코드는 아래와 같습니다.

 

fetch('/submit-form', {
  method: 'POST',
  body: formData
})
.then(response => {
  // 응답 처리
})
.catch(error => {
  // 오류 처리
});

 

 

jquery Ajax를 사용한 예제 코드는 아래와 같습니다.

 

var formData = new FormData();
formData.append('username', 'user1');
formData.append('password', 'pass1');

$.ajax({
    url: 'http://example.com/api/login',
    type: 'POST',
    data: formData,
    processData: false,
    contentType: false,
    success: function(response) {
        console.log(response);
    },
    error: function(xhr, status, error) {
        console.error(error);
    }
});

 

 

 

데이터를 추가할 때, FormData 객체는 문자열, Blob, 파일 등 다양한 데이터 형식을 지원합니다. 파일을 추가하는 경우에는 input 엘리먼트를 사용하여 파일을 선택한 후, File 객체를 FormData 객체에 추가해주면 됩니다.

 

const formData = new FormData();
formData.append('file', inputElement.files[0]);

 

 

jquery ajax를 이용하여 파일 업로드 방법은 아래와 같습니다.

 

  • html
<form id="file-upload-form">
  <input type="file" name="file" id="file-input">
  <button type="submit">Upload</button>
</form>

 

 

  • javascript
$(document).ready(function() {
  $('#file-upload-form').submit(function(event) {
    event.preventDefault();

    var formData = new FormData();
    formData.append('file', $('#file-input')[0].files[0]);

    $.ajax({
      url: '/upload',
      method: 'POST',
      data: formData,
      processData: false,
      contentType: false,
      success: function(response) {
        console.log('File uploaded successfully');
      },
      error: function(xhr, status, error) {
        console.error('An error occurred while uploading the file');
      }
    });
  });
});

 

 

FormData 객체의 속성과 메서드는 다음과 같습니다.

 

  • append(name, value) : 데이터를 추가합니다.

  • delete(name) : 지정한 이름의 데이터를 삭제합니다.

  • get(name) : 지정한 이름의 데이터 값을 반환합니다.

  • getAll(name) : 지정한 이름의 데이터 값을 모두 반환합니다.

  • has(name) : 지정한 이름의 데이터가 있는지 여부를 반환합니다.

  • set(name, value) : 지정한 이름의 데이터 값을 설정합니다.

  • entries() : 모든 데이터를 [name, value] 형태의 배열로 반환합니다.

  • keys() : 모든 데이터의 이름을 나열하는 Iterator 객체를 반환합니다.

  • values() : 모든 데이터의 값을 나열하는 Iterator 객체를 반환합니다.

  • FormData() : FormData 객체를 생성합니다.

  • FormData(form) : 지정한 폼의 데이터를 사용하여 FormData 객체를 생성합니다.

  • FormData(formElement) : 지정한 폼 엘리먼트의 데이터를 사용하여 FormData 객체를 생성합니다.

  • FormData(object) : 지정한 객체의 속성을 사용하여 FormData 객체를 생성합니다.

 

 

 

FormData 객체는 서버와의 통신에서 폼 데이터를 다루는 데 있어서 매우 유용합니다. 폼 데이터 외에도, 이미지나 파일 업로드와 같은 작업을 수행할 때에도 FormData 객체를 사용하는 것이 좋습니다. FormData 객체는 또한 XMLHttpRequest나 fetch API 외에도 다른 라이브러리에서도 지원되고 있습니다. 따라서, 프로젝트에 따라서 사용할 수 있는 다양한 방법이 있으니 적절한 방법을 선택하여 사용하면 됩니다.

FormData 객체를 사용하면, 폼 데이터를 간단하고 편리하게 처리할 수 있으므로, 웹 애플리케이션에서 매우 유용하게 사용됩니다. 예를 들어, 회원가입 폼에서 입력받은 데이터를 서버로 전송할 때 FormData 객체를 사용하여 처리할 수 있습니다. 이 때, 서버에서는 FormData 객체를 이용하여 데이터를 쉽게 추출할 수 있습니다. 또한, 파일 업로드를 처리할 때에도 FormData 객체를 사용하여 파일을 서버로 전송할 수 있습니다.

FormData 객체는 자바스크립트에서 웹 폼 데이터를 다루는 데 있어서 매우 유용한 객체입니다. 이 객체를 사용하면 폼 데이터를 쉽게 다룰 수 있으므로, 웹 애플리케이션에서 매우 유용하게 사용됩니다. FormData 객체를 사용하여 데이터를 전송하는 방법은 XMLHttpRequest나 fetch API를 이용하는 방법이 있으며, 이러한 방법을 사용하면 서버로 데이터를 전송할 수 있습니다. 따라서, FormData 객체는 웹 애플리케이션에서 폼 데이터를 처리하는 데 있어서 필수적인 객체 중 하나입니다.

반응형

'JAVASCRIPT' 카테고리의 다른 글

javascript fetch 사용 방법  (0) 2023.04.19
Javascript 이벤트 루프란?  (0) 2023.02.22