Не удается разрешить перенаправления Dropbox.com с помощью Axios или D3-fetch - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь получить данные в браузере по ссылке Dropbox: https://www.dropbox.com/s/101qhfi454zba9n/test.txt?dl=1

При использовании Axios это работает в узле:

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 Redirect восстанавливается, что кажется совершенно нормальным, но по какой-то причине оно не выполняется.

Точно так же происходит с D3: «NetworkError при попытке извлечь ресурс».

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

Что происходит?

1 Ответ

1 голос
/ 07 ноября 2019

Похоже, что это сбой из-за политики CORS. Попытка выполнить это с XMLHttpRequest напрямую завершается неудачно с:

Доступ к XMLHttpRequest по адресу 'https://www.dropbox.com/s/101qhfi454zba9n/test.txt?dl=1' from origin' ... 'был заблокирован политикой CORS: No' Access-Control-Заголовок Allow-Origin 'присутствует в запрашиваемом ресурсе.

CORS не разрешен на самом сайте www.dropbox.com.

...