я иметь такую форму, где пользователь должен ввести текст только внутри текстовой области:Как передать Laravel CSRF токен значение VUE
<form action="#" v-on:submit="postStatus">{{-- Name of the method in Vue.js --}}
<div class="form-group">
<textarea class="form-control" rows="5" maxlength="140" autofocus placeholder="What are you upto?" required v-model="post"></textarea>
</div>
<input type="submit" value="Post" class="form-control btn btn-info">
{{ csrf_field() }}
</form>
Затем, у меня есть этот скрипт, где я использую vue.js с Ajax для того, чтобы передать этот текст в контроллер и в конечном итоге сохранить его в базу данных:
//when we actually submit the form, we want to catch the action
new Vue({
el : '#timeline',
data : {
post : '',
},
http : {
headers: {
'X-CSRF-Token': $('meta[name=_token]').attr('content')
}
},
methods : {
postStatus : function (e) {
e.preventDefault();
console.log('Posted: '+this.post+ '. Token: '+this.token);
$.ajax({
url : '/posts',
type : 'post',
dataType : 'json',
data : {
'body' : this.post,
}
});
}
},
});
Однако, это не работает до сих пор, так как есть этот маркер исключение несоответствия. Я не знаю, как заставить его работать. Как передать это значение токена контроллеру. Я попытался следующие:
1) внутри формы, я добавил имя VUE к маркеру:
<input type="hidden" name="_token" value="YzXAnwBñC7qPK9kg7MGGIUzznEOCi2dTnG9h9çpB" v-model="token">
2) Я попытался передать это значение маркера в Vue:
//when we actually submit the form, we want to catch the action
new Vue({
el : '#timeline',
data : {
post : '',
token : '',
},
methods : {
postStatus : function (e) {
e.preventDefault();
console.log('Posted: '+this.post+ '. Token: '+this.token);
$.ajax({
url : '/posts',
type : 'post',
dataType : 'json',
data : {
'body' : this.post,
'_token': this.token,
}
});
}
},
});
... но в консоли вю, даже не поймать :(
Это приводит меня к следующей ошибке:
TokenMismatchException in VerifyCsrfToken.php line 68:
Как исправить это? Есть идеи?
Поместите символ @ .... @ {{csrf_field()}} – tam5
@tam Это странно. Форма, например, больше не появляется, если я помещаю '@' – Pathros
Без @, когда вы проверяете DOM, вы видите поле csrf? – tam5