Javascript Can';无法在从ajax发送的laravel控制器中获取数据

Javascript Can';无法在从ajax发送的laravel控制器中获取数据,javascript,php,ajax,laravel,eloquent,Javascript,Php,Ajax,Laravel,Eloquent,我有一条路线 Route::post('/shop', 'ShopController@index'); Route::resource('/shop', 'ShopController')->parameters(['shop' => 'slug']); 我想通过价格范围过滤产品 这是我的: filter_data(); var sliderrange = $('#slider-range'); var amountprice = $('#amou

我有一条路线

Route::post('/shop', 'ShopController@index');
Route::resource('/shop', 'ShopController')->parameters(['shop' => 'slug']);
我想通过价格范围过滤产品

这是我的:

filter_data();
        var sliderrange = $('#slider-range');
        var amountprice = $('#amount');
        function filter_data() {
            var  min_price = $("#min_price").val();
            var  max_price = $("#max_price").val();
            console.log(min_price);
            $.ajax({ url:"/shop", method:"GET",
                data:{ min_price:min_price, max_price:max_price,},
                success:function (data) { },
            });
        };
这是控制器:

    public function index(Request $request)
{
    $min = $request->input('min_price');
    $max = $request->input('max_price');

    return view('front.pages.shop', ['products' => Product::where('status', 1)->whereBetween('price', ['min', 'max'])->latest()->paginate(15)]);
}

您在浏览器中收到的错误消息是什么

如果问题与CORS有关,并且您使用的是Laravel7,那么您应该更新
config/CORS.php
文件,以便它与您的项目一起工作。(例如设置
'allowed_origins'=>['*']


有关详细信息,请参阅。

显然,问题在于控制器没有返回正确的数据(据我所知)

调试此类问题的第一步是检查用于查询的参数是否已实际填充

可以这样做:
dd($min,$max)

如果dd函数的输出显示空值,则问题在于ajax请求。 如果设置了它们,则需要执行以下操作:

public function index(Request $request)
{
    $min = $request->input('min_price');
    $max = $request->input('max_price');

    $products = Product::where('status', 1)->whereBetween('price', ['min', 'max'])->latest()->paginate(15);
    dd($products);

    return view('front.pages.shop', ['products' => $products]);
}
将产品放在一个变量中,并使用该变量运行dd()函数以查看是否有数据。调试完成后,删除dd()函数

如果您有数据,问题可能在其他地方

注: 如果要获取数据,实际上应该使用路由的get方法,而不是POST方法

例如:

Route::get('/shop', 'ShopController@index');

我希望这是一个正确的方向,请尝试一步一步地调试,以找到可能存在问题的确切位置。

能否请您将问题更具体一些?控制器的实际功能是什么?请查看我更新的snipts。具体问题是什么?get请求有效吗?laravel是否返回了不正确的数据?请澄清问题。准确显示没有错误,但也没有显示任何产品。如果我用$data=$request->all()替换控制器中的所有代码;打印(数据);这是renderd一个空数组()。另一个问题可能是您如何定义路线的顺序。
Route::resource()
生成大量额外的路由,可能会覆盖独立的
Route::post('/shop','ShopController@index');。此外,我有点困惑,哪条路线应该做什么。您有一个POST-route“/shop”,它使用
index
-方法,但是您使用AJAX调用/shop URL,使用GET而不是POST。在may-config文件夹中没有名为cors.php的文件,我正在使用Laravel6.18ok,我正在用URL POST更新我在ajax中的代码,但结果是一样的,没有发生任何变化@stefanzweifel@AbuBasedJibon您不是发布到ajax,而是想要获取数据。重写路线就行了