Используя jquery, вы можете добавить токен csrf в любой запрос xhr, используя следующий код:

аюсь реализовать загрузку изображений TinyMCE, используя Laravel 5.3 на стороне сервера:

вот мой JS для TinyMCE, который в настоящее время находится в шаблоне блейда:

<script src="{{ URL::to("/tinymce/tinymce.min.js") }}"></script>
<script>
    tinymce.init({
        selector: 'textarea',
        plugins: [
            "advlist autolink lists link image charmap print preview hr anchor pagebreak",
            "searchreplace wordcount visualblocks visualchars code fullscreen",
            "insertdatetime media nonbreaking save table contextmenu directionality",
            "emoticons template paste textcolor colorpicker textpattern"
        ],
        toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image media",
        relative_urls: false,

        image_title: true,

        automatic_uploads: true,

        images_upload_url: '/discussions/save_images/',

        file_picker_types: 'image',

        images_upload_credentials: true,

        file_picker_callback: function(cb, value, meta) {
            var input = document.createElement('input');
            input.setAttribute('type', 'file');
            input.setAttribute('accept', 'image/*');
            input.onchange = function() {
                var file = this.files[0];
                var id = 'blobid' + (new Date()).getTime();
                var blobCache = tinymce.activeEditor.editorUpload.blobCache;
                var blobInfo = blobCache.create(id, file);
                blobCache.add(blobInfo);
                cb(blobInfo.blobUri(), { title: file.name });
            };
            input.click();
        }
    });
</script>

Мой маршрут для обработки запроса POST от TinyMCE:

Route::post("/discussions/save_images/", 'Discussion\DiscussionController@saveImages');

Мое действие для обработки каждой загрузки:

public function saveImages(Request $request) {
    $filename = sha1(uniqid()).'.'.request()->file("name")->getClientOriginalExtension();
    $request->file("name")->move('/images/discussions/', $filename);
    return json_encode(["location"=>"/images/discussions/".$filename]);
}

Laravel создает исключение TokenMismatchException. Как я могу передать токен CSRF в запрос POST, который делает TinyMCE?

Я знаю, что в целом этот токен может быть доступен в шаблоне через{{ csrf_token }}, но я не уверен насчет правильной конфигурации в отношении TinyMCE.

Ответы на вопрос(2)

Ваш ответ на вопрос