jQuery+formdata는 업로드 진행 효과를 생성합니다(단계 코드 포함).
이번에는 업로드 진행 효과를 생성하기 위한 jQuery+폼데이터를 가져왔습니다. (단계 코드 포함) jQuery+폼데이터에서 업로드 진행 효과를 생성하는 데 사용할 주의 사항은 무엇입니까?
문제 목록
1. JQUERY.AJAX는 업로드 진행 상황의 ONPROGRESS 이벤트를 모니터링하지 않습니다.
2. XMLHTTPREQUEST(XHR) 도메인 간
질문 및 답변
1. JQUERY는 ONPROGRESS 이벤트에 대한 인터페이스를 제공하지 않으며 기본 XHR 개체는 다른 인터페이스에서 찾아야 합니다.
jQuery.ajax()는 jqXHR 객체를 반환합니다. jqXHR은 XHR(네이티브)을 모방하지만, jqXHR이 고유한 메소드(예: .promise())를 추가하더라도 XHR(예: .upload)을 구현하는 모든 메소드 및 속성을 모방하지는 않습니다. 따라서 jqXHR은 XHR의 상위 집합이 아닙니다.
//下面是截取jQ内部的源码,$.ajax();返回的就是这个jqXHR(伪造XMLHttpRequest) // Fake xhr jqXHR = { readyState: 0,
XHR의 업로드 속성은 XMLHttpRequestUpload(IE10은 XMLHttpRequestEventTarget)를 가리키며, 이 개체의 onprogress 이벤트는 업로드 진행 상황을 모니터링할 수 있습니다. jQ에서는 이 기능에 대한 API를 제공하지 않기 때문에 jQ의 일부 데이터 업로드 방법은 XHR을 사용하므로 다른 API에서 XHR을 찾을 수 있습니다. XHR이 데이터를 보내기 전에 onprogress 이벤트를 바인딩하면 업로드 진행 기능을 구현할 수 있습니다.
OPTIONS 매개변수 구성에서 XHR과 관련된 두 가지 속성을 찾았습니다.
-XHR: 콜백이 XMLHTTPREQUEST 개체를 생성합니다.
xhr()의 반환 값은 jQ가 사용할 수 있도록 제공되는 XHR입니다. 즉, 이 XHR은 데이터를 보내는 데 사용됩니다. xhr을 통해 콜백 함수를 생성하여 이를 재정의하고 XHR도 반환할 수 있지만 여기에 onprogress 이벤트를 바인딩할 수 있습니다.
//jQ源码 // Get a new xhr var handle, i, xhr = s.xhr();//[回调]在这里,下面是open方法 // Open the socket // Passing null username, generates a login popup on Opera (#2865) if ( s.username ) { xhr.open( s.type, s.url, s.async, s.username, s.password ); } else { xhr.open( s.type, s.url, s.async ); }
그러므로 다음을 수행해야 합니다.
$.ajax({ //..... xhr: function() { var xhr = $.ajaxSettings.xhr(); //绑定上传进度的回调函数 xhr.upload.addEventListener('progress', progress, false); return xhr;//一定要返回,不然jQ没有XHR对象用了 } });
- XHRFIELDS: "파일 이름-파일 값" 쌍으로 구성된 매핑으로 기본 XHR 개체를 설정하는 데 사용됩니다.
xhrFields 속성은 jQ가 내부적으로 생성한 XHR을 가리키며, xhrFields를 기반으로 XMLHttpRequest를 얻을 수 있습니다. xhrFields의 값은 json 객체만 될 수 있으므로 다음과 같은 방법으로는 얻을 수 없습니다.
//错误例子 $.ajax({ //...... xhrFields: { upload.onprogress: function() { //语法错误 } } });
다음과 같이 XHR의 onsendstart 이벤트를 사용할 수 있습니다.
$.ajax({ //...... xhrFields: { onsendstart: function() { //this是指向XHR this.upload.addEventListener('progress', progress, false); } } });
2. XMLHTTPREQUESTⅡ(XHR)는 크로스 도메인을 지원하지만 백그라운드 권한이 필요합니다.
//后台需发送头部验证 if($_REQUEST['cros']) { header("Access-Control-Allow-Origin:请求的域名"); }
백그라운드에서 제공하는 인터페이스에 따라 cros 매개변수를 추가해야 합니다. 하지만 파일과 함께 이 매개변수를 제출했을 때 도메인 간 제한을 묻는 메시지가 표시되었습니다. 마지막으로 이 매개변수를 URL에 넣으세요.
XHR에는 두 개의 도메인 간 요청이 있는 것으로 나타났습니다. 첫 번째는 확인 요청입니다. 브라우저는 요청 대상 주소를 기반으로 자동으로 옵션 요청을 발행합니다. 통과하면 맞춤형 게시물 요청이 발행될 수 있습니다. 따라서 post 요청에 매개변수를 넣으세요. 첫 번째 요청에는 cros 매개변수가 없습니다. 즉, 통과할 수 없습니다.
이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 도서:
jQuery EasyUI 플러그인을 사용하여 메뉴 링크 버튼을 만드는 방법
JQuery의 jqURL 플러그인 사용에 대한 자세한 설명
위 내용은 jQuery+formdata는 업로드 진행 효과를 생성합니다(단계 코드 포함).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Vue를 사용하여 팝업 창 효과를 구현하려면 특정 코드 예제가 필요합니다. 최근 몇 년 동안 웹 애플리케이션이 개발되면서 팝업 창 효과는 개발자들 사이에서 일반적으로 사용되는 상호 작용 방법 중 하나가 되었습니다. 널리 사용되는 JavaScript 프레임워크인 Vue는 풍부한 기능과 사용 편의성을 제공하며 팝업 창 효과를 구현하는 데 매우 적합합니다. 이 기사에서는 Vue를 사용하여 팝업 창 효과를 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 Vue의 CLI 도구를 사용하여 새로운 Vue 프로젝트를 생성해야 합니다. 열린 결말

Vue를 사용하여 전체 화면 마스킹 효과를 구현하는 방법 웹 개발에서는 사용자가 다른 작업을 수행하지 못하도록 데이터를 로드할 때 마스킹 레이어를 표시하거나 일부 특수한 시나리오와 같이 전체 화면 마스킹이 필요한 시나리오를 자주 접하게 됩니다. 마스크 레이어를 사용하여 요소를 강조 표시합니다. Vue는 다양한 효과를 달성하기 위해 편리한 도구와 구성 요소를 제공하는 인기 있는 JavaScript 프레임워크입니다. 이 기사에서는 Vue를 사용하여 전체 화면 마스킹 효과를 얻는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공합니다. 처음에 우리는

Vue를 사용하여 사이드바 효과를 구현하는 방법 Vue는 단순성, 사용 용이성 및 유연성을 통해 개발자가 대화형 단일 페이지 애플리케이션을 빠르게 구축할 수 있는 널리 사용되는 JavaScript 프레임워크입니다. 이 글에서는 Vue를 사용하여 일반적인 사이드바 효과를 구현하는 방법을 배우고 이해를 돕기 위해 구체적인 코드 예제를 제공합니다. Vue 프로젝트 만들기 먼저 Vue 프로젝트를 만들어야 합니다. Vue에서 제공하는 VueCLI(명령줄 인터페이스)를 사용할 수 있습니다.

WeChat 미니 프로그램에서 카드 뒤집기 효과 구현 WeChat 미니 프로그램에서 카드 뒤집기 효과를 구현하는 것은 사용자 경험과 인터페이스 상호 작용의 매력을 향상시킬 수 있는 일반적인 애니메이션 효과입니다. 다음은 WeChat 애플릿에서 카드 뒤집기 효과를 구현하는 방법을 자세히 소개하고 관련 코드 예제를 제공합니다. 먼저, 미니 프로그램의 페이지 레이아웃 파일에 두 개의 카드 요소를 정의해야 합니다. 하나는 앞면 내용을 표시하기 위한 것이고 다른 하나는 뒷면 내용을 표시하기 위한 것입니다. <--index.wxml- ->&l

HTML, CSS 및 jQuery: 이미지 접기 및 특수 효과 확장 구현 기술 소개 웹 디자인 및 개발에서는 페이지의 매력과 상호 작용성을 높이기 위해 동적 특수 효과를 구현해야 하는 경우가 많습니다. 그 중 이미지 접기 및 펼치기 효과는 흔하면서도 흥미로운 기법입니다. 이 특수 효과를 통해 사용자 작업에 따라 이미지를 접거나 확장하여 더 많은 내용이나 세부 정보를 표시할 수 있습니다. 이 기사에서는 특정 코드 예제와 함께 HTML, CSS 및 jQuery를 사용하여 이러한 효과를 얻는 방법을 소개합니다. 생각을 실현하다

Vue를 사용하여 진행률 표시줄 효과를 구현하는 방법 진행률 표시줄은 작업 완료를 표시하는 데 사용할 수 있는 일반적인 인터페이스 요소입니다. Vue 프레임워크에서는 몇 가지 간단한 코드를 통해 진행률 표시줄의 특수 효과를 구현할 수 있습니다. 이 기사에서는 Vue를 사용하여 진행률 표시줄 효과를 구현하는 방법을 소개하고 특정 코드 예제를 제공합니다. Vue 구성 요소 만들기 먼저 진행률 표시줄 기능을 구현하기 위해 Vue 구성 요소를 만들어야 합니다. Vue에서는 구성 요소를 재사용할 수 있으며 여러 위치에서 사용할 수 있습니다. Pro라는 파일을 만듭니다.

win10 시스템을 사용하면 마우스 트랙 특수 효과를 포함하여 많은 개인 설정을 할 수 있습니다. 그러나 많은 사용자가 win10에서 마우스 트랙 특수 효과를 끄는 방법을 모르기 때문에 자세한 방법을 가져왔습니다. Windows 10에서 마우스 트랙 효과를 끄는 방법: 1. 먼저 바탕 화면의 빈 공간을 마우스 오른쪽 버튼으로 클릭한 후 "개인 설정"을 클릭합니다. 2. 그런 다음 왼쪽의 "테마"를 클릭하고 오른쪽의 "마우스 커서"를 선택하십시오. 3. 속성에 들어간 후 "포인터 옵션"을 확인하고 선택할 수 있습니다. 4. 그런 다음 아래로 스크롤하여 가시성을 확인하면 이때 √가 확인됩니다. 5. 선택을 취소한 후 적용 및 확인을 클릭하세요.

Vue를 사용하여 비디오 플레이어 특수 효과를 구현하는 방법 요약: 이 기사에서는 Vue.js 프레임워크를 사용하여 다양한 특수 효과가 있는 비디오 플레이어를 구현하는 방법을 소개합니다. Vue 지시문과 구성 요소를 사용하여 재생/일시 중지 버튼, 진행률 표시줄, 볼륨 제어 및 전체 화면 기능을 구현합니다. 동시에 사용자 경험을 향상시키기 위해 몇 가지 애니메이션 효과도 추가할 예정입니다. 코드 예제를 포함하여 다양한 특수 효과가 아래에 자세히 소개됩니다. 재생/일시 중지 버튼 효과: Vue 지침을 사용하여 재생/일시 중지 버튼 효과를 구현하는 것은 매우 간단합니다. 첫 번째,
