2017-09-26 19 views
0

こんにちは、私は本当にajax呼び出しを使用して渡すこの削除ボタンがあります。私の問題は、削除ボタンをクリックすると、これは私が受け取るエラーであることです。 NetworkError: 405 Method Not Allowed(1/1) MethodNotAllowedHttpExceptionです。これは私のAddRecordControllerが生成されているので、action('[email protected]', $post['id'])を使用して405メソッドが許可されていません - (1/1)MethodNotAllowedHttpException in Laravel 5

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('.delete-block').on("click","a#deleteBtn", function() { 
      var x = confirm("Do you want to delete this?"); 
      if(x){ 
       var id = $(this).data("deleteid"); 
       $.ajax({ 
        type:"post", 
        url: $(this).data("href"), 
        data: { 
         id: id 
        }, 
        success: function(data){ 
         $("#deleteId"+ id).fadeOut('slow'); 
        } 
       }); 
       return true; 
      }else{ 
       return false; 
      } 

      return false; 
     }); 
    }); 
</script> 

<tbody> 
    @foreach($datas as $post) 
    <tr class="delete-block" id="deleteId{{ $post['id'] }}"> 
     <td>{{ $post['title']}}</td> 
     <td>{{ $post['post'] }} </td> 
     <td>{{ $post['comments'] }}</td> 
     <td> 
      <a href="{{ url('home/edit', $post['id']) }}" class="btn btn-warning">Edit</a> 
      <a href="#" id="deleteBtn" data-deleteid="{{ $post['id'] }}" data-href="{{ action('[email protected]', $post['id']) }}" class="btn btn-danger">Delete</a> 
     </td> 
    </tr> 
    @endforeach 
</tbody> 

イム以下の私のコードです。そして、私のルートは、誰かが私はこの事を考え出し助けることができますか?

public function destroy($id){ 
     // 
     echo "Test"; 
     echo $id; 
     $addRecord = Addrecord::find($id); 
     $addRecord->delete(); 
    } 

下記これだけ

Route::resource('addRecord', 'AddRecordController'); 

マイAddRecordControllerコードですかどんな助けも大変ありがとうございます。 TIA。

+0

はこれを試してみてください。これを行うには、[フォームメソッドスプーフィング](https://laravel.com/docs/5.5/routing#form-method-spoofing)を使用できます。 – ub3rst4r

+0

データを削除するときにフォームメソッドを意味しますか? javascropt/ajaxコールで使用しないでください。 –

+0

AJAXを使用できます。データに '' "_method": "DELETE"、 ''を追加するだけです。 – ub3rst4r

答えて

0

DELETEメソッドを使用する必要があります。これを行うにはform method spoofingを使用できます。あなたが `` DELETE``メソッドを使用する必要が

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $('.delete-block').on("click","a#deleteBtn", function() { 
      var x = confirm("Do you want to delete this?"); 
      if(x){ 
       var id = $(this).data("deleteid"); 
       $.ajax({ 
        type:"post", 
        url: $(this).data("href"), 
        data: { 
         id: id, 
         "_method": "delete" 
        }, 
        success: function(data){ 
         $("#deleteId"+ id).fadeOut('slow'); 
        } 
       }); 
       return true; 
      }else{ 
       return false; 
      } 

      return false; 
     }); 
    }); 
</script> 

<tbody> 
    @foreach($datas as $post) 
    <tr class="delete-block" id="deleteId{{ $post['id'] }}"> 
     <td>{{ $post['title']}}</td> 
     <td>{{ $post['post'] }} </td> 
     <td>{{ $post['comments'] }}</td> 
     <td> 
      <a href="{{ url('home/edit', $post['id']) }}" class="btn btn-warning">Edit</a> 
      <a href="#" id="deleteBtn" data-deleteid="{{ $post['id'] }}" data-href="{{ action('[email protected]', $post['id']) }}" class="btn btn-danger">Delete</a> 
     </td> 
    </tr> 
    @endforeach 
</tbody> 
+0

ありがとうございました。私はこの1つを確認します –

+0

あなたのコードを試しました。これは私が得るものです。 1/1)TokenMismatchException –

+0

次に、CSRFトークンを追加する必要があります。 – ub3rst4r

関連する問題