2015-01-06 42 views
0

我只想發送兩個變量到我的控制器與JS中的onclick事件,我使用laravel框架和JQuery Ajax。錯誤405方法沒有發生異常當與AJAX與Laravel發佈

我的onclick電話是:

onclick="addArt(<?php echo Session::get("ID") ?>, <?php echo $article->idArticle ?>)" 

那去功能在我的JS表:

function addArt(idUser, idArt){ 
    $.post("addArt", { IDUser: idUser, IDArt: idArt}) 
    .done(function(data) { 
     location.reload(); 
    }) 
    .fail(function(e) { 
     console.log(e); 
    }); 
} 

所以我的路線是 「addArt」,並像往常一樣我的路線:

Route::post('addArt',"[email protected]"); 

在我的控制器中,我只是用一個簡單的laravel插件將文章添加到購物車,但我得到一個錯誤405 (方法沒有)

任何人都可以幫助我嗎?

+1

在onclick方法中,雙引號內有雙引號。 – tsg

+0

檢查你的表單是否使用'xsrf'保護? –

回答

0

你得到這個錯誤是因爲你沒有傳遞給你的post對象的csrf標記。

這將工作:

onclick="addArt(<?php echo Session::get("ID") ?>, <?php echo $article->idArticle ?>, <?php echo csrf_token(); ?>)" 

,並在你的工作,你需要通過_token值

function addArt(idUser, idArt, token){ 
    $.post("addArt", { IDUser: idUser, IDArt: idArt, _token: token}) 
    .done(function(data) { 
     location.reload(); 
    }) 
    .fail(function(e) { 
     console.log(e); 
    }); 
} 
+0

Itryed的,但我看到這一點:未捕獲ReferenceError:SQz357JLjhShufbaxKzRx4QlKUIgQ6o1xZ3b0Hjq沒有定義 –

+0

我的錯誤是在路線的路徑只是,但無論如何,謝謝你 –

0

如果您使用Laravel之刃模板,你可以改變一下,有它工作仍在:

onclick="addArt('{{Session::get("ID")}}', '{{$article->idArticle}}')" 
// " " does work inside the {{ }} tags if using Blade. 

如果現在檢查的元素,它應該是這樣的:

onclick="addArt('session', 'article')" 

希望有幫助!

相關問題