Php laravel中间件在ajax请求url中不工作
我喜欢使用ajax插入数据库并返回显示它。 我有像这样的ajaxPhp laravel中间件在ajax请求url中不工作,php,jquery,ajax,laravel,middleware,Php,Jquery,Ajax,Laravel,Middleware,我喜欢使用ajax插入数据库并返回显示它。 我有像这样的ajax $.ajax({ method: 'POST', url: "{{ route('comments.store') }}", data: { comment: 1, comment_text: comment_text, post_id: post_id, "_token": "{{ csrf_token() }}" }); Url中的路由('comments.store)由中间件('auth'保护 在我的控制器中
$.ajax({
method: 'POST',
url: "{{ route('comments.store') }}",
data: {
comment: 1,
comment_text: comment_text,
post_id: post_id,
"_token": "{{ csrf_token() }}"
});
Url中的路由('comments.store)由中间件('auth'保护
在我的控制器中
public function __construct()
{
$this->middleware('auth')->except(['index']);
}
public function store( Request $request ) {
if(Auth::check()){
if ( isset( $request->comment ) ) {
$comment = new Comment( [
'comment' => $request->comment_text,
'user_id' => Auth::id(),
'post_id' => $request->post_id
] );
$comment->save();
$comments = Comment::find( $comment->id );
return response( $comments );
}
}
return redirect()->route( 'home.post.show', $request->post_id );
}
当用户登录时,它正常工作,响应$comment行
但是,当用户未登录时,中间件不会将用户重定向到登录页面,并且它会响应错误“unauthenticated”
如何解决它需要帮助。谢谢您..在jQuery Ajax中添加一个
错误
回调函数,以便在未经授权的情况下将用户重定向到登录页面
$.ajax({
method: 'POST',
url: "{{ route('comments.store') }}",
data: {
comment: 1,
comment_text: comment_text,
post_id: post_id,
"_token": "{{ csrf_token() }}"
},
success: function (data) {
},
error : function (jqXHR, textStatus, errorThrown) {
// User Not Logged In
// 401 Unauthorized Response
window.location.href = ' login page';
}
});
您的中间件代码是什么?这是ajax请求。不会自动重定向到任何页面。您需要在success中检查条件,然后使用
窗口重定向。location