无法使用 Axios 或 D3-fetch 解析 Dropbox.com 重定向



我正试图从Dropbox链接在浏览器中获取数据:https://www.dropbox.com/s/101qhfi454zba9n/test.txt?dl=1

使用Axios,这在Node中有效:

axios.get('https://www.dropbox.com/s/101qhfi454zba9n/test.txt?dl=1').then(x => {
console.log('Received correctly')
console.log(x.data);
}).catch(error => {
console.log('Error', error.message);
if (error.response) {
// The request was made and the server responded with a status code
// that falls out of the range of 2xx
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
} else if (error.request) {
// The request was made but no response was received
// `error.request` is an instance of XMLHttpRequest in the browser and an instance of
// http.ClientRequest in node.js
console.log(error.request);      
}
console.log(error) 
});

https://runkit.com/stevebennett/5dc21d04bbc625001a38699b

但是,它在浏览器中不起作用(单击"控制台"选项卡(:

https://codepen.io/stevebennett/pen/QWWmaBy

我只是得到一个通用的"网络错误"。我看到301重定向被检索,这看起来很正常,但由于某种原因,它没有被遵循。

D3也发生了同样的情况:"尝试获取资源时出现NetworkError。">

https://codepen.io/stevebennett/pen/KKKoZYN

发生了什么事?

由于CORS策略的原因,这似乎失败了。使用XMLHttpRequest直接尝试此操作失败,原因是:

访问'XMLHttpRequesthttps://www.dropbox.com/s/101qhfi454zba9n/test.txt?dl=1'来自原点'…'已被CORS策略阻止:请求的资源上不存在"Access Control Allow Origin"标头。

CORS本身不允许出现在www.dropbox.com上。

最新更新