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 に修正する必要があるだけだと考えていますが、セキュリティが問題であることを確認したいと考えています。