Lumen を使用して、「チケット」を表示しています。これが私のものTickets.blade.phpです:
@foreach($tickets as $ticket)
<div>
<p>{{ $ticket->id }}</p>
<p>{{ $ticket->content }}</p>
<button onclick="deleteTicket({{$ticket->id}})">Delete</button>
</div>
@endforeach
基本的に、誰かが削除をクリックするたびに、次のスクリプトがトリガーされます。
<script>
function deleteTicket(id) {
jQuery.ajax({
type: "post",
url: "/tickets/deleteTicket",
data: id,
dataType: "text",
success: function () {
console.log('deleted!');
}
});
}
</script>
私routes.phpの中に、私はこれを持っています:
$app->post('tickets/deleteTicket','TicketsController@deleteTicket');
最後に、私の には、次のTicketsController.phpものがあります。
public function deleteTicket($id) {
$ticket = Ticket::find($id);
$ticket->delete();
return redirect('/tickets');
}
ボタンを押したときに発生する問題(コンソール):
POST http://example.com/tickets/deleteTicket 404 (見つかりません)
何が間違っているのか、なぜその方法が見つからないのかわかりません。誰でも助けてもらえますか?
編集-私は次のように変更routes.phpしました:
$app->get('tickets/deleteTicket/{id}','TicketsController@deleteTicket');
私のスクリプトは同じように見えますが、「タイプ」をgetではなくに変更しましたpost。
このサイトにアクセスするとhttp://mysite/tickets/deleteTicket/1、チケットが削除され、ticketsページにリダイレクトされます。しかし、ボタンをクリックすると、次のエラーが発生します。
http://MYSITE/tickets/deleteTicket?id=3 404 (見つかりません)
この時点で、AJAX 呼び出しを正しい URL に修正する必要があるだけだと考えていますが、セキュリティが問題であることを確認したいと考えています。