2017-08-31 46 views
0

我使用javascript函數AJAX不是呼叫控制器功能laravel

$.ajax({ 
    type: "DELETE", 
    url: '/delprofile', 
    success:alert("Record deleted."), 
     error: alert("Record not deleted.") 
}); 

下面的代碼和我的路線和功能爲:

public function delprofile (Request $request){ 
    DB::table('education')->where('id','=',7)->delete(); 
    return true; 
} 

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

查詢不執行任何刪除。

+1

這應該是'路線:: delete'我想 –

+0

我會暫時切換到'GET'路線,並調用URL直。或者通過curl進行調試。 –

+0

@BjörnTantau是它執行刪除查詢,然後 –

回答

0

添加CSRF令牌在Ajax代碼

data: {'_token': $('meta[name="csrf-token"]').attr('content') 
      }, 

討論here

4

由於您的AJAX將請求方法設置爲DELETE,因此您必須對路線執行相同操作。

Route::delete('/delprofile','[email protected]'); 
+0

仍然沒有刪除 –

+0

是否調用正確的控制器方法?你有什麼錯誤嗎? –

+0

沒有錯誤,我給出了所有的代碼,主要問題控制器方法是不是被調用 –

1

我認爲主要的問題來自於您的JS代碼,你missind在兩個success & error的anonymos功能:

$.ajax({ 
    type: "DELETE", 
    url: '/delprofile', 
    success: function(){ alert("Record deleted.") }, 
    error: function(){ alert("Record not deleted.") }, 
}); 

或者你也可以使用done/fail代替:

$.ajax({ 
    type: "DELETE", 
    url: '/delprofile', 
}).done(function() { 
    alert("Record deleted."); 
}).fail(function() { 
    alert("Record not deleted."); 
}); 

希望這有助於。

+0

我已經嘗試過,但他們沒有刪除任何記錄。在這段代碼沒有被執行之後,甚至警告(10)。 –

+0

好的,請檢查您的瀏覽器開發人員工具中的_network/console_選項卡,以確保沒有錯誤並且在發出請求時發出sur,如果ajax查詢未執行後的提醒意味着您的JS錯誤碼... –