2016-08-13 5 views
1

を使用してデータを渡すときに、私はこの問題に遭遇イムを開発する際に、LARVELに新しいユーザーだ誰かが私に私が=> PHP Laravel 5.2(匿名関数)AJAX

を開発するために使用するもの

を助けることを願って

は、私は=> (匿名関数)へ=> POST 500内部サーバーエラーポイント

に遭遇していますどのようなエラーこれは私のajaxcreate.blade.phpある

@extends('layouts.app') 

@section('content') 
<div class="col-md-10 col-md-offset-1"> 
    <div class="col-md-8"> 
     <input type="text" class="form-control" id="name" name="name" 
      placeholder="Enter some name" required> 
     <p class="error text-center alert alert-danger hidden"></p> 
    </div> 
    <div class="col-md-4"> 
     <button class="btn btn-primary" type="submit" id="add"> 
      <span class="glyphicon glyphicon-plus"></span> ADD 
     </button> 
    </div> 
</div> 

<div class="col-md-10 col-md-offset-1"> 
    <table class="table table-borderless" id="table"> 
     <thead> 
      <tr> 
       <th class="text-center">ID</th> 
       <th class="text-center">Name</th> 
       <th class="text-center">Details</th> 
       <th class="text-center">Actions</th> 
      </tr> 
     </thead> 
     @foreach($data as $item) 
     <tr class="item{{$item->id}}"> 
      <td>{{$item->id}}</td> 
      <td>{{$item->name}}</td> 
      <td>{{$item->details}}</td> 
      <td><button class="edit-modal btn btn-info" data-id="{{$item->id}}" data-name="{{$item->name}}"> 
        <span class="glyphicon glyphicon-edit"></span> Edit 
       </button> 
       <button class="delete-modal btn btn-danger" data-id="{{$item->id}}" data-name="{{$item->name}}"> 
        <span class="glyphicon glyphicon-trash"></span> Delete 
       </button> 
      </td> 
     </tr> 
     @endforeach 
    </table> 
</div> 


<script> 
$("#add").click(function() { 

    $.ajax({ // this is where my console said the anonymous function 
     type: 'post', 
     url: 'addItem', 
     dataType: 'json', 
     data: { 
      '_token': $('input[name=_token]').val(), 
      'name': $('input[name=name]').val() 
     }, 
     success: function(data) { 
      if ((data.errors)) { 
       $('.error').removeClass('hidden'); 
       $('.error').text(data.errors.name); 
      } else { 
       $('.error').remove(); 
       $('#table').append("<tr class='item" + data.id + "'><td>" + data.id + "</td><td>" + data.name + "</td><td><button class='edit-modal btn btn-info' data-id='" + data.id + "' data-name='" + data.name + "'><span class='glyphicon glyphicon-edit'></span> Edit</button> <button class='delete-modal btn btn-danger' data-id='" + data.id + "' data-name='" + data.name + "'><span class='glyphicon glyphicon-trash'></span> Delete</button></td></tr>"); 
      } 
     }, 
    }); 
    $('#name').val(''); 
}); 
</script> 
@endsection 

これは

public function addItem(Request $request) 
    { 

     $data = new Product(); 
     $data->name = $request->name; 
     $data->details = $request->name; 
     $data->save(); 
    } 

これが私のroutes.php

Route::post('/addItem','[email protected]'); 

Route::get('/readItem','[email protected]'); 
+1

いつでも 'storage/logs/laravel.log'を調べて、エラーの適切なスタックトレースを確認することができます。私の最初の考えは、 '$ data = new Product();'は '()'を持つべきではないということです。 '$ data = new Product;'でなければなりません。残りの部分は、それが送信されているルートが有効である限り、正常に見えます。それが役に立ったら教えてください。 – James

+0

ええ、それは助けて、このエラーを指します//local.ERROR:C:\ wamp64 \ www \ testing \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Http \ Middlewareの例外 'Illuminate \ Session \ TokenMismatchException' \ VerifyCsrfToken.php:67 // @ジェームズはその意味を知っていますか? THX! –

+1

取得したエラーはトークンの不一致の例外です。つまり、リクエストとともに渡すCSRFトークンが無効です。上記のコードを見ると、 '_token'フィールドは表示されません。 CSRFトークンを取得するには、ページにこれがあることを確認してください。 – James

答えて

0

問題である

トークン不一致ので、私がしなければならないすべては変更されている私のAjaxController.phpある

data: { 
      '_token': $('input[name=_token]').val(), 
      'name': $('input[name=name]').val() 
     }, 

~

data: { 
      '_token': '{{ csrf_token() }}', 
      'name': $('input[name=name]').val() 
     }