19

使用Firefox我正在尝试从Google Driveusing下载一些数据XMLHttpRequest。在调试控制台中,它给了我[302 Moved Temporarily],我收到的数据是空的。我如何才能XMLHttpRequest关注重定向响应?如果它改变了事情,我也会使用 https。

4

1 回答 1

5

基本上你使用xhr.getResponseHeader("Location"). 在这种情况下,您可以XMLHttpRequest使用相同的参数将另一个发送到该位置:

function ajax(url /* ,params */, callback) {
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
      // return if not ready state 4
      if (this.readyState !== 4) {
        return;
      }

      // check for redirect
      if (this.status === 302 /* or may any other redirect? */) {
        var location = this.getResponseHeader("Location");
        return ajax.call(this, location /*params*/, callback);
      } 

      // return data
      var data = JSON.parse(this.responseText);
      callback(data);
  };
  xmlhttp.open("GET", url, true);
  xmlhttp.send();
}
于 2020-01-19T12:29:46.783 回答