Как исправить ошибку политики CORS при отправке ax ios get request? - PullRequest
0 голосов
/ 13 апреля 2020

Я попробовал много разных подходов из того, что искал здесь, чтобы попытаться решить проблему, но ни один из них до сих пор не работал.

Когда я не добавляю заголовки, я получаю следующий заголовок :

Однако, когда я их добавляю, вместо этого я получаю эту ошибку:

Я пытался просто добавить домен как proxy в package.json, как я использовал create-react-app, но не повезло.

import axios from 'axios';

export default function getResponse(xappToken){
    console.log(xappToken);

    axios.get('https://api.artsy.net/api/v1/artists/popular', {
       headers: {
         'Access-Control-Allow-Origin': 'http://localhost:3000/',
         'X-Access-Token': xappToken,
         'Accept': 'application/json',
       }
     })
     .then(function (response) {
       console.log(response);
     })
     .catch(function (error) {
       console.log(error);
     })
     .then(function () {
       // always executed
     });
}

Документация API: https://developers.artsy.net/v1/playground# / художники / getApiV1ArtistsPopular

1 Ответ

1 голос
/ 13 апреля 2020

Вы неправильно понимаете, что такое CORS. Заголовки CORS не могут быть установлены браузером, они заголовки ответа (с сервера), а не заголовки запроса (от клиента). Эта проблема возникает из-за того, что запрашиваемый домен не разрешил источнику в браузере запрашивать этот ресурс.

Возможно, Artsy делает это как средство безопасности: они не хотят, чтобы другие сайты загружали свои ресурсы, которые явно не добавлены. Вы, вероятно, не имеете доступа к серверному коду Artsy. Вы, вероятно, можете добавить URL своего приложения где-нибудь в их консоли / dashboard / admin. Возможно, где-то есть настройка локального хоста, и вы можете включить его, пока будете разрабатывать. Или вы можете отредактировать файл HOSTS так, чтобы URL вашей веб-страницы (http://example.com) перешел на 127.0.0.1

...