我正在开发Google Chrome扩展程序并具有将文件上传到s3的功能。在我测试它的大部分时间里,PUT上传请求返回pending
状态并且永远不会解析。发生这种情况时,该文件也无法上传。但是,当我使用async: false
时,一切正常,待处理状态很快就会变为200。
我想知道是否有人知道异步请求导致此问题的原因,因为使用async: false
对我来说不是一个可行的解决方案。我们正在向Chrome的活动提出请求。这是代码:
$.get(url + 'videos/generate_s3_for_chrome', { content_type: 'video/webm' })
.done(function(data) {
$.ajax({
url: data.presigned_url,
method: "PUT",
contentType: "video/webm",
processData: false,
dataType: "json",
//async: false,
beforeSend: function (xhr) {
xhr.setRequestHeader('Content-Type', 'video/webm');
},
data: file,
success: function (data) {
console.log('success', data);
},
error: function (err) {
console.log('error', err);
}
});
}