2015-07-25 19 views
18

Im cố gắng để làm một yêu cầu POST với jQuery nhưng im nhận được một lỗi 405 (Phương pháp không được phép), Im làm việc với Laravel 5Lỗi 405 (Phương pháp không được phép) Laravel 5

Đây là mã của tôi:

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() !!} 

khiển

01.
public function delete($id, \Request $request){ 
     return $id; 
    } 

Lỗi Jquery là http://localhost/laravel5.1/public/empresas/eliminar/5 405 (Phương pháp không được phép).

Giá trị url là

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

và giá trị dữ liệu là

_method=DELETE&_token=pCETpf1jDT1rY615o62W0UK7hs3UnTNm1t0vmIRZ. 

Nếu tôi thay đổi để $.get yêu cầu nó hoạt động tốt, nhưng tôi muốn làm một yêu cầu bài.

Bất cứ ai cũng có thể giúp tôi?

Cảm ơn.

EDIT !!

Route

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

kiểm tra tệp tuyến đường của bạn, bạn có thể đưa ra một phương pháp có được trong tuyến đường thử nó với bài nó sẽ làm việc ....... –

Trả lời

27

Các methodNotAllowed ngoại lệ chỉ ra rằng một con đường không tồn tại cho các phương thức HTTP bạn đang yêu cầu.

Biểu mẫu của bạn được thiết lập để thực hiện yêu cầu DELETE, vì vậy tuyến đường của bạn cần sử dụng Route::delete() để nhận điều này.

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

Tệp routes.php của bạn cần được thiết lập chính xác.

Những gì tôi đang giả thiết lập hiện tại của bạn là như sau:

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

hoặc một cái gì đó. Xác định một tuyến đường cho phương pháp xóa thay thế.

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

Bây giờ nếu bạn đang sử dụng tài nguyên Tuyến đường, tên tuyến mặc định được sử dụng cho phương pháp 'DELETE' là .destroy. Xác định logic xóa của bạn trong hàm đó thay thế.

Các vấn đề liên quan