【发布时间】:2018-03-14 19:27:33
【问题描述】:
很好,我正在尝试通过 ajax 删除,但出现以下错误:
加载资源失败:服务器响应状态为 500(内部服务器错误)
我搜索了错误,显然是由令牌出现的,所以我已经按照他们的建议做了,我在视图中添加了这个:
<meta name="csrf-token" content="{{ csrf_token() }}">
ajax:
$('#delete').on('click', function(){
var x = $(this);
var delete_url = x.attr('data-href')+'/'+x.attr('data-id');
$.ajax({
url: delete_url,
type:'DELETE',
headers:{
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr('content')
},
success:function(result){
alert('success');
},
error:function(result){
alert('error');
}
});
});
控制者:
public function destroy($id)
{
$appointment = Appointment::find($id);
if(appointment == null) {
return Response()->json([
'message'=>'error delete.'
]);
}
$appointment->delete();
return Response()->json([
'message'=>'sucess delete.'
]);
}
路线:
Route::name('appointments.destroy')->delete('/citas/{id}', 'AppointmentController@destroy');
这肯定是一个标记错误,因为如果我在路线上不需要它,它会完美地完成......
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'citas/*'
];
}
【问题讨论】:
-
你能告诉我们web.php文件中的路线吗?
-
完成! @mbozwood
-
你的删除网址完美吗??
-
你能用
console.log(delete_url);的输出更新你的问题吗 -
为什么不使用 axios..laravel 自带 axios.. 使用 csrf 令牌更简化的 ajax
标签: php jquery ajax laravel laravel-5