невозможно отправить запрос на отправку от reactJs с помощью Ax ios на Django restframework - PullRequest
0 голосов
/ 10 июля 2020

Я новичок в ReactJs и пытаюсь отправить запрос на мой Django бэкэнд-сервер, запрос Get работает отлично, как и ожидалось. Но сообщение возвращает ошибку (403) Forbidden ,, вот мой код:

        axios.post('my_url', {
            headers: {
                'Authorization': 'my_auth_string'
            }, body: {
                'type':'in',
                'amount':'123'
            }
        }).then(res =>{
            console.log(res)
        })

ЗАМЕТКИ

  • Конечная точка принимает почтовый запрос, так как он работает как ожидается, когда я отправлю запрос с помощью flutter.
  • Я использую BASI C auth, может ли это быть проблемой с axios?

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

Создайте файл как csrftoken. js и добавьте ниже код


function getCookie(name) {
    var cookieValue = null;
    if (document.cookie && document.cookie !== '') {
      var cookies = document.cookie.split(';');
      for (var i = 0; i < cookies.length; i++) {
        var cookie = cookies[i].trim();
        // Does this cookie string begin with the name we want?
        if (cookie.substring(0, name.length + 1) === (name + '=')) {
          cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
          break;
        }
      }
    }
    return cookieValue;
  }
  
  var CSRF_TOKEN = getCookie('csrftoken');
  
  export { CSRF_TOKEN };

импортируйте токен в требуемый файл

import { CSRF_TOKEN } from ".csrftoken.js";

do ax ios запрос POST, затем

axios.post(url, data, {
        headers: {
          'content-type': 'multipart/form-data',
          'X-CSRFTOKEN': CSRF_TOKEN
        }
      }).then().catch(()
  };

Лучше добавить авторизацию сеанса также с вашим проектом

0 голосов
/ 10 июля 2020

это происходит, когда вы не добавляете токен csrf в заголовки ваших почтовых запросов, например:

headers: {
        'X-CSRFToken':'{{csrf_token}}',
        'Authorization': 'my_auth_string'
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...