我正在使用 Firefox
下载来自 Google Drive
的一些数据,使用的是 XMLHttpRequest
。在调试控制台中,它显示了 [302 Moved Temporarily]
并且我收到的数据为空。如何让 XMLHttpRequest
跟随重定向响应?另外,我正在使用 https,如果有改变该怎么做?
我正在使用 Firefox
下载来自 Google Drive
的一些数据,使用的是 XMLHttpRequest
。在调试控制台中,它显示了 [302 Moved Temporarily]
并且我收到的数据为空。如何让 XMLHttpRequest
跟随重定向响应?另外,我正在使用 https,如果有改变该怎么做?
基本上您可以使用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();
}