#javascript #vue.js #vuejs2 #axios
#javascript #vue.js #vuejs2 #axios
Вопрос:
Я пытался извлечь токен из say http://test.com/confirm?token=MMsndiwhjidh...
, а затем отправить post-запрос на другой сервер.
Я пробовал это:
export default {
data() {
return {
confirmation : false,
somethingWrong: false
}
},
created: function() {
axios.post('/confirm', null, {
method: 'post',
params: {
token:this.$route.query.token
}
})
.then(function(res) {
console.log(res)
this.confirmation = true
})
.catch(function(error) {
console.log(error)
this.somethingWrong = true
})
}
}
Я получил следующие ошибки:
Я думаю, что я не могу правильно извлечь токен.
Комментарии:
1. Вы пробовали функции со стрелками в своем
.then
?Cannot set property...
Ошибка может быть связана с областью действияthis
. Другие ошибки трудно определить, не видя ваш серверный код2. Как исправить ошибку не удается установить свойство
3. Попробуйте использовать функции arrow так, как ответил @Kapcash
Ответ №1:
Причина в том, что вы используете декларативные функции вместо функций со стрелками в своих блоках then / catch. this
Не относятся к одному и тому же (здесь this
это не ваш компонент Vue).
Попробуйте так:
.then((res) => {
console.log(res)
this.confirmation = true
})
Я не буду пытаться объяснить разницу самостоятельно, поскольку в Интернете есть много статей об этом. Вот один