2013-09-01 2 views
4

xhr 진행 이벤트를 사용하여 진행률 표시 줄을 업데이트하려고합니다.xhr 업로드 진행 이벤트 한 번만 실행

나는 다음과 같은 코드가 있습니다 :

xhr: function() { 
    var xhr = Ember.$.ajaxSettings.xhr(); 
    xhr.upload.addEventListener("progress", function(e){ 
     if (e.lengthComputable) { 
     self.didProgress(e); 
     } 
    }, false); 
    return xhr; 
    }, 

문제는 이벤트가 한 번만 발생한다는 것입니다 서버 호출이 크로스 도메인 때문에 내가 이런 일을 생각합니다.

이 작업을 올바르게 수행하기 위해 헤더에 의해 서버에서 설정해야 할 사항을 알고있는 사람이 있습니까?

+1

일반적으로 교차 원어 요청에 대한 서버 응답으로 반환 할 필요가없는 것은 없습니다. 이 프로세스에 익숙하지 않은 경우 https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS를 보았습니다. –

답변

1

내가 아는 한, 이것은 도메인 간 요청과 관련이 없습니다. 일반적으로 아파치에서는 전체 파일을 하나의 덩어리로 업로드하기 때문에 한 번 이상 실행되는 진행 이벤트를 얻지 못한다. apache-upload-progress-module

이전에 모듈없이이 방법을 얻은 방법은 파일을 클라이언트 측 (파일 API 및 BLOB 사용)에서 여러 조각으로 나누는 것입니다. 첫 번째 청크는 전송되고 더 이상 청크가 업로드 될 때까지 서버 응답을 기다리고 두 번째 청크를 전송합니다.

웹에서 몇 가지 예가 있습니다. JQuery File Upload의 작동 방식을 살펴 보시기 바랍니다.

이 정보가 도움이되기를 바랍니다.

관련 문제