【问题标题】:Why I can not call function in my laravel controller?为什么我不能在我的 laravel 控制器中调用函数?
【发布时间】:2019-06-02 22:15:59
【问题描述】:

我的 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,怎么回事?帮帮我。

【问题讨论】:

  • url: 'test' 是一个相对 url,所以如果你在page/39,你会打电话给page/39/page。尝试使用url: '/test'

标签: php ajax laravel


【解决方案1】:

问题就在这里:

url: 'test',

改成:

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

然后再试一次。

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

Reference

【讨论】:

    【解决方案2】:

    请将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);
          }
        });
      });
    

    【讨论】:

    • 如果我有这样的网址怎么办:localhost:8888/project/page/5 ajax 的网址怎么样? laravel 的路径和路径?
    【解决方案3】:

    ajax 函数中的 somethimes 不能使用 laravel 路由, 首先你尝试使用这个

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

    如果它不起作用,您可以使用 Ziggy , 这太好了,而且易于使用,

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

    【讨论】:

      【解决方案4】:

      尝试命名您的路线:Route::get('/test', ['as' => 'testroute', 'uses' => 'MyController@test' ]); 然后在你的 js 中这样调用路由:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-20
        相关资源
        最近更新 更多