Csrf-token in vue-Komponente
Habe ich Laravel 5.3 Projekt mit Vue.js integriert und ich will CSRF-TOKEN
in meine form. Formular-html-code ist in Vue-Komponente-Datei in
resources /assets /js /bootstrap.js
Habe ich dieses:
Vue.http.interceptors.push((request, next) => {
request.headers.set('X-CSRF-TOKEN', MyApp.csrfToken);
next();
});
dann habe ich Haupt-vue-Datei /resources/assets/js/app.js
:
require('./bootstrap');
Vue.component('callbackwindow', require('./components/callbackwindow.vue'));
const app = new Vue({
el: '#app',
data: { },
});
dann in Vue-Datei muss ich verwenden csrf_field
, aber ich weiß nicht, wie um es dort zu bekommen, weil die standard-php - csrf_field()
ist nicht gerendert innen Vue-Komponente und ich weiß nicht, wie zu importieren MyApp.csrfToken
.
<template>
<div class="modal fade" >
<form @submit.prevent="submitForm" name="callback" method="POST" action="/" role="form" class="form-horizontal" enctype="multipart/form-data">
{!! csrf_field() !!}
...form code here...
</form>
</div>
</template>
<script>
export default { }
</script>
Ist es möglich, zu importieren MyApp.csrfToken
variable aus hier in meinem Vue template-Datei?
InformationsquelleAutor schel4ok | 2016-12-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als alternative Möglichkeiten:
1 - Holen Sie sich die token von meta-tag mit
csrf-token
Namen in der<head>
:2 - Pass es als requisite, um Ihre Vue-Komponente:
InformationsquelleAutor YaserKH
Tun dies in blade:
Tun dies in Vue-Komponente:
InformationsquelleAutor SAIF ALI
Einen Weg, den Sie definieren könnte, Sie csrf-token wäre, fügen Sie Folgendes zu Ihrer
head
Abschnitt Ihrer main blade-Datei:Alternativ könntest du den import so etwas wie die
cookie
Bibliothek und nutzen Sie diexsrf
token statt.mit npm:
mit Garn:
Dann in Ihre
bootstrap.js
Datei:Hoffe, das hilft!
Sie möchte nur noch hinzufügen, dass es zu jeder form, wenn du nicht gehst, werden Sie es senden mit Vue, sonst wird es immer automatisch dem Auftrag Hinzugefügt.
Ich habe mein Formular Absenden mit vue. Warum ich nicht brauchen, um hinzuzufügen, csrf_field in diesem Fall?
...weil mit dem obigen code, es wird Hinzugefügt werden, sobald ein header in jeden request.
InformationsquelleAutor Ross Wilson
Ich hatte dasselbe Problem, und ich löste wie dieser. Ich bin nicht sehr stolz, denn ich mache schmutzige globalen Bereich
Durch hinzufügen der folgenden:
in app.blade.php
in meinem was auch immer Komponente/untergeordnete Komponente MyComponent.vue:
InformationsquelleAutor koalaok