除非异步关闭,否则AJAX请求的状态将处于暂挂状态

时间:2017-04-03 21:28:28

标签: javascript jquery google-chrome-extension google-chrome-app

我正在开发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);
    }
  });
}

0 个答案:

没有答案