簡體   English   中英

使用Laravel使用AJAX進行發布時,錯誤405方法未引起異常

[英]Error 405 Method Not Alowed Exception when post with AJAX with Laravel

我只想使用JS中的onclick事件將兩個變量發送到我的控制器,我正在使用laravel框架和JQuery Ajax。

我的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',"CarsController@addArt");

在我的控制器中,我只需將文章插入一個簡單的laravel即可添加到購物車中,但出現錯誤405(方法未啟用)。

誰能幫我這個忙嗎?

之所以收到該錯誤,是因為您沒有將csrf令牌傳遞給post對象。

這將起作用:

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);
  });
}

如果您使用的是Laravel的刀片模板,則可以進行一些更改並使它仍然可以工作:

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

如果現在檢查元素,則它應如下所示:

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

希望有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM