私はビューからのAJAX呼び出しを作っていて、バックコントローラとしますが、それは直接ブラウザに何もしていませんLaravel AJAXはデータ
public function compare(Request $request)
{
$products = Product::whereIn('id', $request->productIds)->get();
return view('compare', compact('products'));
}
:コントローラーをトリガさ
function compareProducts() {
var productIds = [];
$('#compare-widget tbody tr').each(function(i, ele) {
productIds[i] = $(ele).data('product-id');
});
$.ajax({
url: 'product/compare',
type: 'POST',
data: {
"_token": "{{ csrf_token() }}",
productIds: productIds
},
success: function(result) {
}
});
}
。クロムインスペクタを開くと、OK 200コードが表示され、そこでトリガされたリンクを開くと、正常に表示されますが、AJAXでリダイレクトをトリガすることはできません。
私はwindow.location.href = "compare";
私は右のページにリダイレクトされますが、私はもはや、ページの更新後に失われ$products
からの製品は、 'SUCCESS'コールバックではJavaScriptを使用してビューを更新します。 Submit ajax tu controllerはデータを保存するだけです – xmhafiz
どうすればいいですか? – Norgul
それはそのようには機能しません。 ajax呼び出しの後にリダイレクトする場合は、javascriptを使ってこれを明示的に行う必要があります。基本的に 'success'イベントに' window.location.href = url'のようなものをフックします。 – devk