2015-03-30 96 views
0

我有一個奇怪的問題正在進行。我似乎無法獲得通過ajax提交刪除的記錄。我沒有看到任何錯誤,因爲之前在Laravel 4上工作過。我是否需要爲該方法提供CSRF標記?如果我將路線更改爲任何地方而不是發佈或刪除並直接點擊它,它將按預期刪除。Laravel 5 Ajax刪除不起作用

{!! HTML::link(url(), 'Delete', array('class' => 'btn btn-delete', 'data-name' => $tile->tile_name, 'id' => $tile->id)) !!} 

阿賈克斯

var id = $this.attr('id'); 

// Submit delete request to route with id 
$.post('edit/delete/' + id); 

// Redirect to gallery 
window.location.href = 'http://ims-tiles.dev/'; 

路線

$router->post('edit/delete/{id}', [ 

    'as' => 'tile.destroy', 
    'uses' => '[email protected]' 

]); 

銷燬方法

public function destroy($id) { 

    $tile = Tile::find($id); 
    $tags = explode(' ', $tile->getTags()); 
    $tagIds = []; 

    foreach($tags as $tag){ 

     array_push($tagIds, $tile->getTagId($tag)); 
    } 

    $tile->tags()->detach($tagIds); 
    $tile->delete();   

} 
+0

你的路線聽刪除,但您發送POST請求 – lukasgeiter 2015-03-30 18:56:11

+0

嗨!我甚至改變了列表到POST請求的路由,但它仍然不會刪除記錄。 – 2015-03-30 18:59:59

+0

在瀏覽器控制檯中是否有任何錯誤? – lukasgeiter 2015-03-30 19:00:30

回答

1

我需要提供CSRF令牌的方法?

是的,你這樣做。 Laravel的默認CSRF保護適用於AJAX POST/PUT/DELETE /等。請求就像他們做非AJAX請求一樣。

+2

我想如何改變或實現ajax CSRF(甚至只是一個鏈接)的指示將有助於OP和改善這個答案... – lukasgeiter 2015-03-30 19:06:15