我喜欢使用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') 在我的控制器中
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 row。
但是当用户未登录时,中间件不会将用户重定向到日志记录页面,而是响应错误"未经身份验证的"。
如何解决它需要帮助。谢谢你...
答案 0 :(得分:0)
向jQuery Ajax添加error
回调函数,以便在未授权的情况下将用户重定向到登录页面
$.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';
}
});