TokenMismatchException เมื่อพยายามใช้การอัปโหลดสื่อ

ฉันใช้ Laravel 5.1 และแพ็คเกจอัพโหลดสื่อสำหรับการอัพโหลดรูปภาพ ajax

https://github.com/triasrahman/laravel-media-upload

โดยใช้รหัสต่อไปนี้:

<input type="file" name="file">
<img clas="preview" src="">

$('input[name=file]').change(function()
{   
    // AJAX Request
    $.post( 'media-upload', {file: $(this).val()} )
        .done(function( data )
        {
            if(data.error)
            {
                // Log the error
                console.log(error);
            }
            else
            {
                // Change the image attribute
                $( 'img.preview' ).attr( 'src', data.path );
            }
        });
});

ฉันได้รับข้อผิดพลาดเซิร์ฟเวอร์ภายใน 500 ข้อ

ตรงกับปัญหานี้ทุกประการ:

https://github.com/triasrahman/laravel-media-upload/issues/1

แต่ฉันไม่เข้าใจวิธีการทำงานของฉันอย่างเต็มที่ ฉันทำรหัสเดียวกันกับคำตอบที่เพิ่ม ฉันยังคงได้รับข้อผิดพลาด 500

ฉันจะแก้ไขปัญหานี้ได้อย่างไร?


person devs    schedule 27.08.2015    source แหล่งที่มา
comment
คุณสามารถโพสต์แบบฟอร์มทั้งหมดของคุณได้หรือไม่?   -  person Ivanka Todorova    schedule 27.08.2015


คำตอบ (2)


ดังในลิงก์จาก github บอกว่าคุณต้องส่งโทเค็น _token : $("[name='_token']").val()

<input type="file" name="file">
<img clas="preview" src="">

$('input[name=file]').change(function()
{   
    // AJAX Request
    $.post( 'media-upload', {file: $(this).val(), _token : $("[name='_token']").val()} )
        .done(function( data )
        {
            if(data.error)
            {
                // Log the error
                console.log(error);
            }
            else
            {
                // Change the image attribute
                $( 'img.preview' ).attr( 'src', data.path );
            }
        });
});
person Ivanka Todorova    schedule 27.08.2015

คุณต้องเพิ่มด้วยวิธีนี้หากคุณส่งแบบฟอร์มผ่าน ajax

$.ajaxSetup({
    headers : {
        'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')
    }
});
person mdamia    schedule 27.08.2015