AJAXの削除を使用している405件のエラーがあります。しかし、私が見つけた投稿からの解決策はどれも私のために働いていませんでした。LAREAvelのDELETE Ajaxリクエストで405(Method Not Allowed)エラーが発生しました。
データベーステーブルのすべての製品を表示するテーブルがあるビューがあります。各行にそうような製品を削除するための削除ボタンがある:ボタンをクリックし、データベースから商品を削除するために、コントローラにdestroyメソッドを呼び出し、次のJavaScriptを実行オン
{!! Form::open(['method' => 'DELETE', 'route' => ['slider.destroy', $slide->id]]) !!}
<button type="button" class="deleteproductModal btn btn-xs btn-default btn-flat"
data-toggle="modal"
data-product_token="{{ csrf_token() }}"
data-product_name="{{ $slide->title_slider }}"
data-product_destroy_route="{{ route('slider.destroy', $slide->id) }}">
<i class="fa fa-trash"></i>
</button>
{!! Form::close() !!}
:
$('button.deleteproductModal').click(function()
{
var productRoute = $(this).attr("data-product_destroy_route");
var productName = $(this).attr("data-product_name");
var productToken = $(this).attr("data-product_token");
deleteproduct(productRoute, productToken, productName);
});
function deleteproduct(productRoute, productToken, productName)
{
swal({
title: "Window product Deletion",
text: "Are you absolutely sure you want to delete " + productName + "? This action cannot be undone." +
"This will permanently delete " + productName + ", and remove all collections and materials associations.",
type: "warning",
showCancelButton: true,
closeOnConfirm: false,
confirmButtonText: "Delete " + productName,
confirmButtonColor: "#ec6c62"
}, function()
{
$.ajax({
type: "DELETE",
url: productRoute,
headers: { 'X-CSRF-TOKEN' : productToken }
})
.done(function(data)
{
swal("Window Product Deleted!", productName + " Window Product was successfully delete.", "success");
})
.error(function(data)
{
swal("Oops", "We couldn't connect to the server!", "error");
});
});
}
私のコントローラはリソースコントローラです。ルートは次のとおりです。
Route::resource('slider','Backend\SliderController');
ここでは、呼び出されているコントローラからの破壊方法があります。
public function destroy($id)
{
$home= Slider::find($id);
unlink($home->featured_image);
$home->delete();
notify()->flash('<h3>Deleted successfully</h3>', 'success', ['timer'=>2000]);
return redirect('slider');
}
私は、我々は、サーバー甘い警告エラーに接続するcouldntのおっと取得製品を削除
が、私の新鮮なデータが削除されたページ....任意のヘルプ?
ないように注意してください、しかし、あなた自身は、javascriptを前に提出does notのフォームが実行されていることを確認していますか?私はどのタイプのボタンも送信していないと思うので...そうではありません。ああ、そこにはたくさんのものがあります。/とにかくajaxリクエストを使うつもりなら、あなたは開いて閉じる必要があると思います。 –
まず、ボタンごとにフォームを用意する必要はありません。すべてのボタンに対して1つのフォームを作成するか、フォームを削除して、代わりにページにトークンを追加してください。次に、あなたのアヤックスが発砲しているのか、それともすぐに提出したのかを把握しなければなりません。あなたのajaxが発砲している場合は、あなたのPHPコードにエラーがあるかもしれません。 Google Chromeでは、デベロッパーコンソールでリクエストデータを確認できます。より多くの情報を提供すれば、より有用なデータを得ることができます。 –