Php 405 Laravel中不允许的方法异常

Php 405 Laravel中不允许的方法异常,php,ajax,laravel,Php,Ajax,Laravel,我正在开发一个laravel应用程序,其中我从两个不同的laravel blade页面调用AJAX,一个页面运行时没有任何错误,但另一个页面抛出405 Method Not Allowed,我正在添加以下相关文件: 以下是post路线: Route::post('/cart', 'HomeController@addToCart')->name('home.cart'); 以下是JS函数: function addToCart(id) { $.ajaxSetup({

我正在开发一个laravel应用程序,其中我从两个不同的laravel blade页面调用AJAX,一个页面运行时没有任何错误,但另一个页面抛出
405 Method Not Allowed
,我正在添加以下相关文件:

以下是
post
路线:

Route::post('/cart', 'HomeController@addToCart')->name('home.cart');  
以下是
JS
函数:

function addToCart(id)
{

$.ajaxSetup({
          headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
          }
        });

    $.ajax({
            url:"cart",
            type:'POST',
            data:{bookId:id}
      })
     .done(function(data){
        cartLength.html(data);
        jQuery('#successCart'+id).html('Book Added to Cart');
        console.log(data);
      });
}  
当我从
index.blade.php
调用此函数时,它运行良好,下面是调用:

<a href="#" class="add-to-cart" onclick="event.preventDefault(); addToCart('{{$book->id}}');">Add To Cart</a>  

任何帮助都将提前得到感谢。谢谢。

尝试将
url:“购物车”
更改为
url:“/cart”,
。如果没有首字母
/
,浏览器将把url作为当前页面的相对地址,因此如果您在一个页面上,比如说,
example.com/foo
,它将尝试并发布到
example.com/foo/cart
。在开头添加
/
将告诉浏览器从根目录中将其作为相对项读取:
example.com/cart
@MagnusEriksson:谢谢,您的评论很有用,我添加了/cart,但它不起作用。然后我添加了完整的路径
/wisdom2/public/cart
,它成功了
<a href="#" class="add-to-cart" onclick="event.preventDefault(); addToCart('{{ $book->id }}');" >Add To Cart</a>