我做了一个ajax调用,但我一直收到这个错误:
419(未知状态)
不知道是什么导致我在其他帖子上看到它必须用csrf令牌做一些事情,但我没有形式所以我不知道如何解决这个问题.
我的电话:
$('.company-selector li > a').click(function(e) {
e.preventDefault();
var companyId = $(this).data("company-id");
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
url: '/fetch-company/' + companyId,
dataType : 'json',
type: 'POST',
data: {},
contentType: false,
processData: false,
success:function(response) {
console.log(response);
}
});
});
Run Code Online (Sandbox Code Playgroud)
我的路线:
Route::post('fetch-company/{companyId}', 'HomeController@fetchCompany');
Run Code Online (Sandbox Code Playgroud)
我的控制器方法
/**
* Fetches a company
*
* @param $companyId
*
* @return array
*/
public function fetchCompany($companyId)
{
$company = Company::where('id', $companyId)->first();
return response()->json($company);
}
Run Code Online (Sandbox Code Playgroud)
最终目标是在html元素中显示响应中的内容.
我在点击图标时尝试通过ajax调用删除模型项.没有ajax调用,只需要一个表单,一切都很好.
当我查看chrome dev工具的网络选项卡时,会抛出此异常
"的Symfony \分量\ HttpKernel \异常\ HttpException"
这是我的图标:
<i class="fa fa-trash-o deletebtn" aria-hidden="true" data-pointid="<?php echo $damagePoint->id ?>"></i>
Run Code Online (Sandbox Code Playgroud)
我的ajax电话:
$(".deletebtn").click(function(ev){
let pointid = $(this).attr("data-pointid");
$.ajax({
url: '/pointdelete/' + pointid,
type: 'delete',
success: function (response) {
}
});
})
Run Code Online (Sandbox Code Playgroud)
我的路线:
Route::delete('pointdelete/{id}', 'DamagePointController@delete');
Run Code Online (Sandbox Code Playgroud)
我的控制器方法
public function delete($id)
{
$todo = DamagePoint::findOrFail($id);
$todo->delete();
return back();
}
Run Code Online (Sandbox Code Playgroud)