使用Firefox
我尝试使用Google Drive
从XMLHttpRequest
下载一些数据。在调试控制台中它给我[302 Moved Temporarily]
,我收到的数据是空的。如何让XMLHttpRequest
遵循重定向回复?如果它改变了,我也会使用https。
答案 0 :(得分:3)
很容易使用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();
}