【发布时间】:2018-04-02 03:23:07
【问题描述】:
尝试发出 AJAX POST 请求时,我的代码给了我 500 内部服务器错误。我已经完成了 CSRF Token 部分。
这是我的 JS 代码
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('#likeBtn').on('click', function(e){
e.preventDefault();
//Getting urlLink and activityId - works
$.ajax({
type: 'POST',
url: './mainView/postlike',
data: {activityId : activityId},
success: function(data){
console.log(JSON.stringify(data));
},
error: function(e){
console.log(JSON.stringify("Exception: " + e));
}
});
});
这是我的帖子路线:
Route::post('/mainView/postlike', 'ActivityController@postLike')->name('postLike')->middleware('auth');
这是我的控制器方法:
public function postLike(){
if(Request::ajax()){
return Response::json(Request::all());
}
}
这是我的 mainView.blade.php。我真的不想使用表单,但我还是尝试了。
<form id="likeForm" method="POST" action="#">
<input class="likeToken" type="hidden" name="_token" value="{{ csrf_token() }}">
<a id="likeBtn" data="{{ route('activity.like', ['activityId' => $activity->activity_id]) }}">
<img src="IMG/icons/like.png" alt="likes">
</a>{{ $activity->likes->count() }}
</form>
话虽如此,如果我在路由中执行此操作,它会输出提供的消息。
Route::post('/mainView/postlike', function(){
if(Request::ajax()){
echo "Hi";
}
})->name('postLike')->middleware('auth');
按赞按钮时显示“嗨”
【问题讨论】:
-
服务器端脚本错误。尝试在您的服务器上启用错误反馈。
-
检查
storage/logs/laravel.log是否有错误。 -
它说,local.ERROR:非静态方法 Illuminate\Http\Request::ajax() 不应静态调用 {"userId":1,"email":"test@gmail. com","exception":"[object] (ErrorException(code: 0): 非静态方法 Illuminate\\Http\\Request::ajax() 不应在
静态调用
标签: javascript php ajax laravel