サファリの達人。Windows の Safari で進行状況イベントに関する非常に奇妙なケースに遭遇しました。
ファイルを S3 にアップロードするためのクロスオリジン要求を行い、Windows の Safari での進行状況イベントを除いてすべて正常に動作します。
Mac OS での通常の動作: Safari、Chrome、Firefox、および Windows Chrome、Firefox:
1. Start upload
2. The sequence of the progress events
3. The end - readyState == 4
Windows(Vista) Safari 5.1.7 (7534.57.2) での動作がおかしい
1. Start upload
2. All progress events firing in 1-2 seconds interval
3. No events until the end of the upload (60 seconds)
4. The end - readyState == 4
ファイルが正常にアップロードされました。問題はイベントだけです。
コードは非常に単純です。
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = Handler;
xhr.onabort = Handler;
xhr.onerror = Handler;
xhr.ontimeout = Handler;
xhr.upload.onprogress = Handler;
xhr.open('put', S3Url, true);
xhr.setRequestHeader(...Header...);
xhr.setRequestHeader(...Header...);
xhr.send(FileObject);
なにが問題ですか ?