аксиос ставить не происходит бросать запрещено - PullRequest
0 голосов
/ 25 ноября 2018
  • Я новичок в axios.
    • Я пытаюсь обновить мой API с помощью запроса пут.Но я получаю ошибку ниже.ВАРИАНТЫ http://t/Sports/1 403 (Запрещено)
    • Я исследовал очень много сайтов для axios, но все еще не могу решить проблему
    • Можете ли вы сказать мне, как это исправить.
    • предоставив мой фрагмент кода ниже
<div className={classes.SportsEditTabContentFooter}>

    <div>Sports Status</div>
    <div>
        <Button variant="outlined" className={classes.button}>
        Cancel
                </Button>
        <Button variant="outlined" onClick={this.saveSports} className={classes.button}>
        Save Sports test
                </Button>
    </div>
</div>

  saveSports = () => {
    console.log("saveSports---->");
    console.log(this.state.Sports);
    let saveSports = this.state.Sports;
    saveSports.updatedBy = 'raj';
    saveSports.priceRuleDescription = "test description";

    axios
      .put(
      'http://t/Sports/' + saveSports.SportsID,
      saveSports,
      { headers: { 'Content-Type': 'application/json' } }
      )
      .then(r => console.log(r))
      .catch(e => console.log(e));

    //this.toggleDrawer("right", false);
    this.setState({ right: false });
    this.setState({ snackBarOpen: true });
    setTimeout(() => {
      this.setState({ snackBarOpen: false });
    }, 6000)
  };

1 Ответ

0 голосов
/ 25 ноября 2018

Поскольку вы пытаетесь установить связь с другим доменом из-за * 1001, * CORS браузер автоматически отправляет запрос OPTIONS.И сервер не ожидает этого, поэтому он возвращает 403 по любой причине.

Имея это в виду, вам нужно

  1. либо изменить свой клиентский код, чтобы сделать простой запрос
  2. установить свой клиентский код для запускатот же домен, в котором запускается серверная часть
  3. , запускает прокси-сервер CORS в качестве того же домена, где размещен код клиента - поскольку OPTIONS, или предварительный запрос, отправляется браузером, ваш код, скажем, в Node, не требует, чтобы
  4. обновить целевой код бэкэнда, чтобы правильно обрабатывать предварительный запрос OPTIONS

Для решения вашей проблемы достаточно каждого варианта.Но вам решать, что удобнее в вашем случае

PS на всякий случай: нет, невозможно избежать предварительного запроса OPTIONS, который нужно отправить, настроив axios, заменив axios другим пакетом, fetch() call или native XmlHttpRequest или любое другое простое изменение в вашем клиентском коде, поскольку это фундаментальная (безопасность!) Функция современных веб-браузеров

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...