Ich mag Ajax verwenden, um in die Datenbank einzufügen und wieder zurück zu zeigen. Ich habe Ajax ähnlicheLaravel Middleware funktioniert nicht in AJAX-Anfrage URL
$.ajax({
method: 'POST',
url: "{{ route('comments.store') }}",
data: {
comment: 1,
comment_text: comment_text,
post_id: post_id,
"_token": "{{ csrf_token() }}"
});
und in URL-Route ('comments.store) ist von Middleware-Schutz (' Auth ') in meinem Controller
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);
}
, wenn der Benutzer angemeldet ist, es funktionierte Normal und Antwort $ Kommentarzeile.
aber wenn Benutzer nicht protokolliert wird, leitet die Middleware den Benutzer nicht zur Protokollseite um, und der Antwortfehler ist "nicht authentifiziert".
wie Sie es beheben müssen Hilfe. Dank Sie ..
was ist Ihre Middleware-Code –
Es ist Ajax-Anforderung zu umleiten. Welche nicht automatisch zu irgendeiner Seite umgeleitet werden. Sie müssen die Bedingung im Erfolg überprüfen und dann mit 'window.location' umleiten –