将AJAX与Laravel GET请求一起使用不起作用

时间:2018-11-13 03:10:13

标签: jquery ajax laravel laravel-5

我要做的是将@yield('somecontent.content')动态加载到母版上。仅出于提供信息的目的,我有以下内容:

控制器

public function someFunction()
{
    //DB logic here
    return view('/exampleView')
    ->with($dataset1)
    ->with($dataset2)
    ->with($dataset3)
    ->with($dataset4);
}

路线:

Route::get('someRoute', ['as' => 'theRoute', 'uses' => 'someController@someFunction']);

Ajax / jquery功能:

$(document).ready(function(){
 $('.ajaxClick').click(function(event){
    //event.preventDefault();
    $.ajax(
       type: 'GET',
       url: 'theRoute',
       datatype: 'json',
    success: function(data){
       console.log('AJAX loaded something');
    }, 
    error: function(){
       console.log('AJAX load did not work');
    }
    });
 });
});

查看逻辑:

<a class="ajaxClick" data-name="{{ 
route('theRoute') }}" href="#">Testing Ajax</a>

在一个标记中,我原来具有该路由,该路由可以工作,但会刷新页面,并且不刷新就不会加载。

它的运行方式,请单击导航栏中的链接,然后在设置字段中动态加载Laravel路线,该字段使用@yield('somecontent')分配给视图加载。

另一个问题是,您将如何在Laravel中实现此目标?如果需要其他任何评论。

谢谢!

PS 这款example仪表板几乎是我想要做的,如何在不刷新页面的情况下立即加载内容。

1 个答案:

答案 0 :(得分:0)

如果您仍然想使用jQuery,则可以使用如下代码:

$(document).ready(function(){
    $('.ajaxClick').click(function(event){
        //event.preventDefault();
        $.ajax({
            type: 'GET',
            url: 'theRoute',
            datatype: 'json',
            success: function(data){
                $('#main-wrapper').html(data);
            }, 
            error: function(){
                console.log('AJAX load did not work');
            }
        });
    });
});

我建议您尝试研究javascript框架。您发送的链接使用的是Angular JS,并且内置了所需的功能,称为SPA或单页应用程序

JS框架的不完整列表:

  • 角度
  • 反应
  • Vue