2

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

怎么了 ?

4

0 回答 0