Я пытаюсь отправить данные публикации в django Restful API, используя vuejs. вот код, который у меня есть:
<script>
import axios from 'axios'
import VueCookies from 'vue-cookies'
//3RD ATTEMPT
VueCookies.set("csrftoken","00000000000000000000000000000000");
// @ is an alias to /src
export default {
name: "Signup",
components: {},
data: () => {
},
methods: {
sendData(){
// 2ND ATTEMPT
// $cookies.set("csrftoken", "00000000000000000000000000000000");
axios({
method: 'post', //you can set what request you want to be
url: 'https://localhost:8000/indy/signup/',
data: {
csrfmiddlewaretoken: "00000000000000000000000000000000",
first_name: "wade",
last_name: "king",
email: "wade%40mail.com",
password1: "05470a5bfe",
password2: "05470a5bfe"
},
// 1ST ATTEMPT
// headers: {
// Cookie: "csrftoken= 00000000000000000000000000000000"
// },
withCredentials: true
})
}
}
</script>
У меня есть кнопка, которая выполняет метод sendData () одним щелчком мыши. Код использует библиотеку axios для отправки запроса на публикацию в API django, работающем на http://localhost:800/indy/signup/
Проблема с простой отправкой почтового запроса в API заключается в том, что он будет заблокирован для предотвращения подделки межсайтовых ответов (CSRF). Я не совсем понимаю CSRF, но я знаю, установлен ли csrftoken как cookie и имеет ли он то же значение, что и csrfmiddlewaretoken, то пост должен пройти через API.
Вы можете увидеть мои попытки установить cookie в коде, который я предоставил
1-я ПОПЫТКА)
headers: {
Cookie: "csrftoken= 00000000000000000000000000000000"
},
Здесь я пытаюсь установить cookie прямо в шапке. Когда я нажимаю кнопку отправить, в консоли браузера появляется сообщение об ошибке: refused to set unsafe header "Cookie"
2-Я ПОПЫТКА)
$cookies.set("csrftoken", "00000000000000000000000000000000");
Здесь я пытаюсь установить cookie с помощью модуля vue-cookies. Когда я нажимаю отправить, я получаю следующую ошибку: net::ERR_SSL_PROTOCOL_ERROR
3-я попытка)
VueCookies.set("csrftoken","00000000000000000000000000000000");
Здесь я пытаюсь установить глобальный файл cookie с помощью модуля vue-cookies. Когда я нажимаю отправить, я получаю ту же ошибку, что и попытка 2
ВАЖНО:
Однако когда я отправляю данные поста в API с моего терминала с помощью следующей команды curl, она отлично работает
curl -s -D - -o /dev/null \
-H 'Cookie: csrftoken= 00000000000000000000000000000000' \
--data 'csrfmiddlewaretoken=00000000000000000000000000000000&first_name=wade&last_name=king&email=wade%40mail.com&password1=05470a5bfe&password2=05470a5bfe' \
http://localhost:8000/indy/signup/
мой главный вопрос Как мне повторить этот запрос скручивания, используя vuejs? Я просмотрел все онлайн, и ни одно из руководств не касалось настройки файлов cookie.