Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Laravel AJAX到控制器并返回数据_Javascript_Php_Jquery_Ajax_Laravel - Fatal编程技术网

Javascript Laravel AJAX到控制器并返回数据

Javascript Laravel AJAX到控制器并返回数据,javascript,php,jquery,ajax,laravel,Javascript,Php,Jquery,Ajax,Laravel,我正在从以下视图进行AJAX调用: function compareProducts() { var productIds = []; $('#compare-widget tbody tr').each(function(i, ele) { productIds[i] = $(ele).data('product-id'); }); $.ajax({ url: 'product/compare', type: 'P

我正在从以下视图进行AJAX调用:

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) {
        }
    });
}
这将触发控制器:

public function compare(Request $request)
{
    $products = Product::whereIn('id', $request->productIds)->get();
    return view('compare', compact('products'));
}
但它并没有直接在浏览器中执行任何操作。当我打开chrome inspector时,我看到一个OK 200代码,当我打开触发链接时,它显示的很好,但我无法使用AJAX触发重定向


如果我执行
window.location.href=“compare”我被重定向到正确的页面,但我不再有权访问
$products

您可以将产品保存到
会话
并重定向到比较页面,这样您在重定向到比较页面时就可以访问
产品

public function compare(Request $request)
{
    $products = Product::whereIn('id', $request->productIds)->get();

    session(['products' => $products]);

    return url('compare');
}
success: function (result) {
    window.location.href = result;
}
在成功回调中,您可以重定向到比较页面

public function compare(Request $request)
{
    $products = Product::whereIn('id', $request->productIds)->get();

    session(['products' => $products]);

    return url('compare');
}
success: function (result) {
    window.location.href = result;
}
并在
比较
视图中访问会话中的产品

{{ session('products') }}

success
回调中使用javascript刷新视图。提交ajax tu控制器只是为了存储一个数据,我怎么做?它不是这样工作的。如果您想在ajax调用后重定向,则需要使用javascript显式执行此操作。基本上是在
success
事件上挂起类似
window.location.href=url的东西。如果在成功时执行href,则无法从ID获取数据并按控制器的方式返回数据