2015-07-25 30 views
18

Im jQuery ama im bir hata 405 (Yönteme İzin Verilmiyor) alma ile POST isteği yapmaya çalışıyor, Im laravel 5Hata 405 laravel (Yönteme İzin Verilmiyor) 5

ile THis kodum edilir çalışma:

jQuery

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('.delete').click(function (e){ 
      e.preventDefault(); 
      var row = $(this).parents('tr'); 
      var id = row.data('id'); 
      var form = $('#formDelete'); 
      var url = form.attr('action').replace(':USER_ID', id); 
      var data = form.serialize(); 
      $.post(url, data, function (result){ 
       alert(result); 
      }); 
     }); 
    }); 
    </script> 

HTML

{!! Form::open(['route' => ['companiesDelete', ':USER_ID'], 'method' =>'DELETE', 'id' => 'formDelete']) !!} 

    {!!Form::close() !!} 

Kontrolör

Jquery hatası: http://localhost/laravel5.1/public/empresas/eliminar/5 405 (Yöntem İzin Verilmiyor).

url değeri

http://localhost/laravel5.1/public/empresas/eliminar/5 

ve ben bunu gayet iyi çalışıyor $.get isteğine değiştirmek, ama bir post isteği yapmak istiyorsanız veri değeri

_method=DELETE&_token=pCETpf1jDT1rY615o62W0UK7hs3UnTNm1t0vmIRZ. 

olduğunu.

Herkes bana yardımcı olabilir?

Teşekkürler.

EDIT !!

Rota

Route::post('empresas/eliminar/{id}', ['as' => 'companiesDelete', 'uses' => '[email protected]']); 
+1

rotanızı kontrol edin rotada bir get metodu verdiğinizde postası ile çalışın çalışacaktır ....... –

cevap

27

methodNotAllowed istisna Rota Geleneksel hesap HTTP yöntemi için yok olduğunu gösterir.

Formunuz, bir DELETE isteği yapmak üzere ayarlanmıştır, bu nedenle rotanız, bunu almak için Route::delete()'u kullanmalıdır.

Route::delete('empresas/eliminar/{id}', [ 
     'as' => 'companiesDelete', 
     'uses' => '[email protected]' 
]); 
4

routes.php dosyanızın doğru bir şekilde kurulmuş olması gerekir.

Route::post('/empresas/eliminar/{id}','[email protected]'); 

falan: Ben geçerli kurulum varsayıyorum Ne

gibidir. Bunun yerine silme yöntemi için bir rota tanımlayın. Bir Rota kaynak kullanırken Şimdi, eğer varsayılan rota adı 'SİL' yöntemi için kullanılacak

Route::delete('/empresas/eliminar/{id}','[email protected]'); 

.destroy olduğunu. Bunun yerine silme mantığınızı tanımlayın.

İlgili konular