Php 为什么我不能在我的laravel控制器中调用函数?

Php 为什么我不能在我的laravel控制器中调用函数?,php,ajax,laravel,Php,Ajax,Laravel,在我的laravel项目中,我有这样的链接页面: 然后我试着让ajax像这样工作 $(window).dblclick(function(){ $.ajax({ url: 'test', success: function(r){ alert(r); } }); }); 我的路线是这样的: Route::get('test', ['uses'=>'MyController@test']); 我在控制器中的功能如下:

在我的laravel项目中,我有这样的链接页面: 然后我试着让ajax像这样工作

$(window).dblclick(function(){
    $.ajax({
      url: 'test',
      success: function(r){
        alert(r);
      }
    });
  });
我的路线是这样的:

Route::get('test', ['uses'=>'MyController@test']);
我在控制器中的功能如下:

public function test(){
   echo 1;
}
当我运行ajax函数时,输出不是1,但当我像这样更改链接页面时:


ajax的输出是1,怎么了?帮帮我。

请将js代码中的路径更改为:

问题是,当您的请求被发送到而不是

您应该使用绝对路径
/test
而不是
test

$(window).dblclick(function(){
    $.ajax({
      url: '/test', //changed
      success: function(r){
        alert(r);
      }
    });
  });
问题在于:

url: 'test',
将其更改为:

url: '{{ url("/test") }}',
然后再试一次

说明:在laravel中,
url()
帮助程序用于为应用程序生成任意url


尝试命名路由:
route::get('/test',['as'=>'testroute','uses'=>'MyController@test' ]);
然后在js中,按以下方式调用路由:

url = "{{ route('testroute') }}";
$.ajax({
  url: url,
  success: function(r){
    alert(r);
  }
});

ajax函数中有时无法使用laravel路由, 首先你试着用这个

url : "{{route('route_name')}}"
如果不起作用,您可以使用
Ziggy
, 这很好,而且很容易使用


链接:

url:“测试”
是一个相对url,因此如果您在
page/39
上,您将调用
page/39/page
。尝试使用
url:'/test'
如果我的url是这样的话会怎么样:localhost:8888/project/page/5 ajax的url怎么样?拉威尔的路线呢?