JavaScript:调用fetch后没有回调

问题描述 投票:0回答:2

我写了一个Javascript代码来通过API上传文件:

  function submitForm(bucket, accessToken) {
      console.log("Fetching the file...");
      var input = document.getElementsByTagName('input')[0];
      var name = input.files[0].name;
      var uploadUrl = 'https://www.googleapis.com/upload/storage/v1/b/'+ bucket +'/o?uploadType=media&access_token=' + accessToken +'&name=' + name;
      fetch(uploadUrl, {
          method: 'POST',
          body: input.files[0]
      }).then(function(res) {
          console.log('Something did happen!'); // <<----- Message never displayed!
      });
  }

但是,我无法从帖子请求中获取响应正文。上传进展顺利,但没有回调,我无法以确定的方式控制结果。我该如何修复它,至少获取HTTP状态代码?

javascript google-cloud-storage
2个回答
0
投票

通过添加:以非常愚蠢的方式解决:

event.preventDefault();

资料来源:What does status=canceled for a resource mean in Chrome Developer Tools?


0
投票

fetch可以生成错误,如果确实如此,则通过.catch发生。

像这样:

function submitForm(bucket, accessToken) {
  console.log("Fetching the file...");
  var name = 'testName';
  var uploadUrl = 'https://www.googleapis.com/upload/storage/v1/b/'+ bucket +'/o?uploadType=media&access_tokenn=' + accessToken +'&name=' + name;
  fetch(uploadUrl, {
    method: 'POST',
    body: 'body stuff'
  }).then(function(res) {
    console.log('Something did happen!'); // <<----- Message never displayed!
    console.log(res);
  }).catch(function(err) {
    console.error('Got error:', err);
  });
}

submitForm('12345', 'testing');
© www.soinside.com 2019 - 2024. All rights reserved.