Невозможно опубликовать данные в mysql из шаблона django, используя vue - PullRequest
0 голосов
/ 29 февраля 2020

Когда я публикую данные, я получаю следующее сообщение.

CSRF Failed: CSRF token missing or incorrect.

Однако я добавляю CSRF в заголовок топора ios, как показано ниже.

postArticle: function() {
            this.loading = true;
            csrftoken = Cookies.get('csrftoken');
            headers = {'X-CSRF-Token': csrftoken};
            axios.post('/api/articles/',this.newArticle, {headers: headers})
                .then((response) => {
                  this.loading = false;
                  console.log(this.articles)
                  console.log("success")
                  this.getArticles();
                })
                .catch((err) => {
                  this.loading = false;
                  console.log("failed")
                  console.log(err);
                })
            },

Я включаю CSR, как показано ниже.

<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>

С другой стороны, я пробовал другой способ, как показано ниже.

В html <meta name="csrf-token" content="{{ csrf_token }}">

postArticle: function() {
            this.loading = true;
            axios.defaults.headers.common= {
               'X-Requested-With': 'XMLHttpRequest',
                  'X-CSRF-TOKEN' : document.querySelector('meta[name="csrf-token"]').getAttribute('content')
             };
            axios.post('/api/articles/',this.newArticle)
                .then((response) => {
                  this.loading = false;
                  console.log(this.articles)
                  console.log("success")
                  this.getArticles();
                })
                .catch((err) => {
                  this.loading = false;
                  console.log("failed")
                  console.log(err);
                })
            },

Впрочем, я тоже не могу. В чем проблема?

...