2016-07-19 5 views
0

Я загрузки изображения с помощью Laravel PHP и XMLHttpRequest() и я получаю следующее сообщение об ошибкеLaravel XMLHttpRequest MethodNotAllowedHttpException в RouteCollection.php линии 218:

MethodNotAllowedHttpException в RouteCollection.php линии 218

Далее мой Javascript код, который обрабатывает форму представляет:

$(document).on('submit','form',function(e){ 
    e.preventDefault(); 
    $form=$(this); 
    uploadImage($form); 

    }); 

    function uploadImage($form){ 
    $form.find(".progress-bar").removeClass("progress-bar-success").removeClass("progress-bar-danger"); 
    var formdata=new FormData($form[0]); 
    var request=new XMLHttpRequest(); 

    // progress event... 

    request.upload.addEventListener('progress',function(e){ 

    var percent=Math.round(e.loaded/e.total * 100); 
    console.log('progress: '+percent); 
    $form.find('.progress-bar').width(percent+'%').html(percent+'%'); 

    }); 
    // progress completed load event 

    request.upload.addEventListener('load',function(e){ 

    var percent=e.loaded/e.total * 100; 
    console.log('load: '+percent); 
    $form.find('.progress-bar').addClass('progress-bar-success').html('upload completed'); 

    }); 


    request.open('post','productImage.add'); 
    request.send(formdata); 

    $form.on('click','.cancel',function(){ 

    request.abort(); 
    $form.find('.progress-bar').addClass('progress-bar-danger').removeClass('progress-bar-success').html('upload aborted...'); 

    }); 

}

Это мой HTML форма, информация отправляется на PHP маршрут

<form role="form"> 
        <label>Product Image:</label> 
        <input type="file" name="image"> 
        <button type="submit" class="btn btn-info btn-sm upload">Upload</button> 
        <button type="button" class="btn btn-danger btn-sm cancel">Cancel</button> 
        <div class="progress progress-striped active">     
         <div class="progress-bar" style="width:0%"></div> 
        </div> 

      </form> 

это мой маршруты файл:

Route :: группа ([ 'префикс' => 'админ'], функция () {

Route::get('/', function() { 

     return view('welcome'); 

    }); 

    Route::auth(); 

    Route::get('/home', [ 

     'uses'=>'[email protected]', 
     'as'=>'home' 

     ]); 

    Route::post('/productAdd', [ 

     'uses'=>'[email protected]', 
     'as'=>'product.add' 

    ]); 

    Route::post('/productImageAdd', [ 

     'uses'=>'[email protected]', 
     'as'=>'productImage.add' 

    ]); 

}); 

и, наконец, это мой код пост управления:

class productsController extends Controller 
{ 
    function add(Request $request){ 

     $product= new product(); 
     $product->productName=$request["name"]; 
     $product->description=$request["description"]; 
     $product->discount=$request["discount"]; 

     $request->user()->products()->save($product); 
     return redirect()->route('home'); 

    } 

    function addImage(Request $request){ 
     print_r($request); 
    } 




} 
+1

Как насчет защиты CSRF? Это на месте? –

ответ

0

Вы забыли затяжка n для защиты CSRF. Добавить скрытое поле в форму:

<input type="hidden" name="_token" value="{{ csrf_token() }}"> 

Это должно сделать трюк!

Редактировать: не забудьте отправить _token с просьбой о создании.

 Смежные вопросы

  • Нет связанных вопросов^_^