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

时间:2019-01-08 08:45:51

标签: php ajax laravel

我的laravel项目中有一个带有此类链接的页面:http://127.0.0.1:8000/page/39 然后我尝试使像这样的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,但是当我像这样更改链接页面时: http://127.0.0.1:8000/page

Ajax的

输出为1,这是什么问题?帮帮我。

4 个答案:

答案 0 :(得分:2)

问题在这里:

url: 'test',

将其更改为:

url: '{{ url("/test") }}',

然后重试。

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

Reference

答案 1 :(得分:0)

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

问题是当您在http://127.0.0.1:8000/page/39上时,请求将发送到http://127.0.0.1:8000/page/test而不是http://127.0.0.1:8000/test

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

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

答案 2 :(得分:0)

Ajax函数中的

somethimes无法使用laravel路由, 首先,您尝试使用此

url : "{{route('route_name')}}"

如果无法正常使用,则可以使用Ziggy, 这是如此好,而且易于使用,

链接:https://github.com/tightenco/ziggy

答案 3 :(得分:-1)

尝试命名您的路线:raw-body 然后在您的js中以这种方式调用路由:

Cannot determine length of [object Object]