Ajax 此路由不支持POST方法。支持的方法:GET,HEAD。”;

Ajax 此路由不支持POST方法。支持的方法:GET,HEAD。”;,ajax,laravel,Ajax,Laravel,在没有表单的情况下,如何在laravel中通过ajax中的路由 我有一个没有表格的链接或路线 <div class="row" id="markets"> @foreach($markets as $market) <div class="col-lg-3"> <div class="card"> &l

在没有表单的情况下,如何在laravel中通过ajax中的路由

我有一个没有表格的
链接
路线

<div class="row" id="markets">
    @foreach($markets as $market)
        <div class="col-lg-3">
            <div class="card">
                <img src="{{ asset('images/markets/'.$market->image) }}" class="card-img-top">
                <div class="card-body">
                    <h5 class="card-title">{{ $market->title }}</h5>
                    <p class="card-text">{{ Str::words($market->body, 10) }}</p>
                    <p class="card-text">{{ $market->price }} $</p>
                    <a href="{{ route('cart', $market->id) }}" class="card-text add-to-cart">Add to cart</a>
                    <a href="{{ $market->path() }}" class="btn btn-primary">Continue</a>
                </div>
            </div>
        </div>
    @endforeach
</div>

@foreach($markets作为$market)
图像)}}“class=“card img top”>
{{$market->title}

{{Str::words($market->body,10)}

{{{$market->price}$

@endforeach
我想用ajax来实现它

<a role="button" class="card-text add-to-cart">Add to cart</a>

<script>
    $(document).ready(function(){
        $('.add-to-cart').on('click', function(event){
            event.preventDefault();
            var Route = $(this).attr('href');
            $.ajax({
                url: '{{ route("cart", $market->id) }}',
            });
        });
    });
</script>


我的目标是创建网页。

尝试在web.php中进行更改

Route::get('/cart/{market}',"MarketController@cart")->name('cart');

似乎您在同一路线上同时使用了
get
post
,如果是这样,则可能就是这样

编辑:

试试这个

$('#markets').load('{{ route('cart') }} #markets')
上述功能的作用是加载购物车路线的市场id,并替换当前路线市场id

此外,我认为最好添加

<div id="markets">
 <div class="row">
    @foreach($markets as $market)
        <div class="col-lg-3">
            <div class="card">
                <img src="{{ asset('images/markets/'.$market->image) }}" class="card-img-top">
                <div class="card-body">
                    <h5 class="card-title">{{ $market->title }}</h5>
                    <p class="card-text">{{ Str::words($market->body, 10) }}</p>
                    <p class="card-text">{{ $market->price }} $</p>
                    <a href="{{ route('cart', $market->id) }}" class="card-text add-to-cart">Add to cart</a>
                    <a href="{{ $market->path() }}" class="btn btn-primary">Continue</a>
                </div>
            </div>
        </div>
    @endforeach
 </div>
</div>

@foreach($markets作为$market)
图像)}}“class=“card img top”>
{{$market->title}

{{Str::words($market->body,10)}

{{{$market->price}$

@endforeach

ie要在要替换的div之外创建一个div,这样类就不会混合,因为for循环将只在服务器端加载,所以要加载的是循环数据

只需将路由
route::get…
更改为
route::post…
即可与表单一起使用(post方法)然后将
Route::post…
更改为
Route::get…
我没有表格,我有链接你能添加你的路由文件吗?url:“{route(“cart”,['id'=>$market->id])}”,可能是solutionweb.php,没错。但是我的篮子没有改变任何数字。你是不是只是像if($request->ajax()){return“ajax”}那样对ajex使用if条件,我正在使用它。如果你想使用ajex,那么在函数开始时使用它会更好,然后函数可以区分他想做一些ajex工作并运行里面的代码,如果或者它将运行get route的代码,但是如果你想使用api类型,那么我更希望你制作一个api控制器并在routes中使用
api.php
因此,您的url将只在末尾添加
api/carts/id
,这是一回事,另一件事是..当用户单击“添加到购物车”而不重新加载时,是否要更改购物车中的“否”??
<div id="markets">
 <div class="row">
    @foreach($markets as $market)
        <div class="col-lg-3">
            <div class="card">
                <img src="{{ asset('images/markets/'.$market->image) }}" class="card-img-top">
                <div class="card-body">
                    <h5 class="card-title">{{ $market->title }}</h5>
                    <p class="card-text">{{ Str::words($market->body, 10) }}</p>
                    <p class="card-text">{{ $market->price }} $</p>
                    <a href="{{ route('cart', $market->id) }}" class="card-text add-to-cart">Add to cart</a>
                    <a href="{{ $market->path() }}" class="btn btn-primary">Continue</a>
                </div>
            </div>
        </div>
    @endforeach
 </div>
</div>