野生动物园大师。我在 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);
怎么了 ?