2016-04-02 32 views
0

これは、Getの代わりに投稿にajaxを使用する私の最初の試みです。まるでそれが働いているかのように私は200の応答を得るが、コントローラーの機能は決して実行されていない。Laravel 5 Ajax投稿ルート

私はajax Getリクエストでこの同じ概念を使用しましたが、正常に動作しますが、Postが期待どおりに機能していないため、Sortable( 'serialize')によってPost変数が作成されるため、Postを使用する必要があります。

成功の警告:機能は常に成功したように動作しますが、コントローラの機能は決してヒットしません(私は単純なデータベースを変更して実行中かどうかを確認しています)。

アヤックス:

$(function() { 
    $('[id^="sortable_"]').sortable(
    { 
     connectWith: '.sortable-line-item-list-5',  
     update : function (event, ui) 
     { 
     var items = $(this).sortable('serialize'); 
      $.ajax({ 
       type: 'post', 
       url: '/api/sort_order_item', 
       data: { 
        'items': items, 
       }, 
       success: function() 
       { 
        alert('looks like it is working...'); 
       }, 
      }); 
     } 
    }); 
    $('[id^="sortable_"]').disableSelection(); 
}); 

ルート:

Route::post('api/sort_order_item', ['as' => 'api/sort_order_item', 'uses' =>'[email protected]']); 

コントローラ:私はあなたの問題は、 があなたのブレードページのheadセクションに次の行を入れcsrf_tokenていると思う

public function SortOrderItem() 
{ 
    $this_item = \pmms\Checklist_template_line_item::findOrFail(20); 
    $this_item->list_position = 1; 
    $this_item->save(); 
} 
+0

あなたを助けている場合、私に教えてください。メソッドにヒットしました。メソッドの 'dd(app( 'request') - > all())'で確認して、ブラウザの[ネットワーク]タブを確認してください。また、あなたは 'return'キーワードを使用せず、応答を返送しませんでした。 –

+0

私はこれらのことの両方に疲れました - dd()は決してメソッドにヒットしません。 returnキーワードは何も返しません。私はChromeのネットワークタブを見て、200応答を表示しますが、直前に302を返すapi/sort_order_itemではなく、localhost/homeから来ています。 – circle1

+0

その後、物事のような 'auth'のリダイレクトがあります。 –

答えて

1

その後、

、あなたのAjaxのコードは次のように更新します。

$.ajax({ 
      type: 'post', 
      url: '/api/sort_order_item', 
      data: { 
       'items': items, 
       '_token': $('meta[name="csrf-token"]').attr('content'), 
      }, 
      success: function() 
      { 
       alert('looks like it is working...'); 
      }, 
     }); 

は、要求がメソッドを打っていない場合、それは、あなたが `200`ステータスコードを取得するべきではありません

+0

はい!それは、csrfトークンが失敗し、設計によってログイン画面に再ルーティングされたことでした。 – circle1

+0

いいコーディングがあります:) – BKF