Ajax serialize () 양식 양식 제출 시 파일 형식 을 업로드 할 수 없 으 면 어떻게 합 니까?
모든 방법 은 장점 과 부족 이 있 습 니 다. 어떤 방법 은 간단 하고 직접적 이 며 어떤 방법 은 복잡 하 게 쓰 지만 사용 하기에 편리 합 니 다. 최근 프로젝트 에서 Ajax 폼 제출 문 제 를 만 났 습 니 다. 여기 서 ajax 가 제출 한 두 가지 방식 을 정리 하 겠 습 니 다.
1. serialize () 방법:
폼 값 을 정렬 하여 URL 인 코딩 텍스트 문자열 을 만 듭 니 다.우 리 는 하나 이상 의 폼 요소 (예 를 들 어 input 및 / 또는 텍스트 상자) 나 form 요소 자 체 를 선택 할 수 있 습 니 다.직렬 화 된 값 은 AJAX 요청 을 생 성 할 때 URL 조회 문자열 에 사용 할 수 있 습 니 다.사용 하 는 문법 은:
$("form").serialize()
여기 있 는 $(form) 작업 대상 은 폼 요소 집합 을 대표 하 는 jQuery 대상 이지 js 대상 이 아 닙 니 다.
제출 방법의 코드 세그먼트:
$('form').submit(function() {
alert($(this).serialize());
return false;
});
최종 서열 화 후 폼 에 있 는 데 이 터 는 다음 과 같은 방식 으로 백 엔 드 에 제출 됩 니 다. a = 1 & b = 2 & c = 3 & d = 4 & e = 5 와 같은 방식 으로 폼 을 처리 할 때 적용 되 는 input 태그 형식 은 제한 되 어 있 습 니 다. text, checkbox, select, date 등 일반적인 형식 에 만 적 용 됩 니 다. 그러나 file 파일 형식의 input 상자 에는 적용 되 지 않 습 니 다.그럼 ajax 제출 방식 을 사용 할 때 file 형식의 input 상자 데 이 터 를 어떻게 제출 해 야 합 니까?
2. FormData 대상 을 봉인 하고 $. ajax 로 직접 제출
포럼 에 서 는 formData 의 패 키 징 방식 에 대해 언급 되 었 습 니 다. form 폼 의 내용 을 formdata 의 데이터 형식 으로 패 키 징 할 수 있 습 니 다. FormData 대상 은 form 의 모든 폼 요소 의 name 과 value 를 하나의 query String 으로 구성 하여 배경 에 제출 할 수 있 습 니 다. Ajax 를 사용 하여 제출 할 때 FormData 대상 을 사용 하면 query String 의 작업량 을 줄 일 수 있 습 니 다.
FormData 의 사용 방법 도 매우 간단 합 니 다. form 폼 대상 에 직접 전송 하면 됩 니 다. 다음 과 같 습 니 다.
var form = $('#form1');
var formdata = new FormData(form);
이러한 방식 으로 데 이 터 를 밀봉 한 후 file 형식의 파일 데 이 터 는 키 가 맞 는 방식 으로 formdata 에 밀봉 한 다음 ajx 로 제출 할 수 있 습 니 다. 방법 은 다음 과 같 습 니 다.
$.ajax({
type : "POST",
url : "houtai/123.do",
data : formData,
async: false,
cache: false,
contentType: false,
processData: false,
success : function(msg) {
if(msg){
alert(' !');
}
}
});
한 가지 주의해 야 할 것 은 formdata 방식 으로 제출 할 때 async: false 를 추가 해 야 합 니 다. 동기 화 되 지 않 으 면 배경 에서 프론트 데스크 에서 보 내 온 file 파일 데 이 터 를 받 을 수 없습니다. 이러한 제출 방식 은 type 형식 탭 을 제출 할 수도 있 고 제출 한 후에 결 과 를 되 돌려 받 을 수도 있 습 니 다. 편리 하고 실 용적 입 니 다.
form 폼 을 제출 하 는 방식 은 아직도 많 습 니 다. 본 고 는 ajax 의 두 가지 제출 방식 에 대한 정리 일 뿐 앞으로 더 좋 은 제출 방식 이나 제출 플러그 인 을 만 날 수 있 기 를 바 랍 니 다.
오 랜 만 에 총 결 블 로 그 를 만 들 었 습 니 다. 2018 년 에 견 뎌 냈 으 면 좋 겠 습 니 다!!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Emacs에서 디폴트보다는 편하게 JSP를 쓰고 싶다.Emacs에서 JSP(JavaServer Pages)를 쓰게 되었지만 코드 성형 설정이 없었다. CentOS 6 GNU Emacs 23.1.1 STEP 1 의 다운로드에서 파일을 다운로드합니다. (나는 Github에...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.