首页 > 解决方案 > 使用 AJAX 和 Laravel GET 请求不起作用

问题描述

我想要做的是@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>

在 a 标签中,我有最初可以工作的路线,但会刷新页面并且不刷新就不会加载。

它的流程是,单击导航栏中的链接,然后在一个设置字段中动态加载 Laravel 路由,该字段分配给视图以使用@yield('somecontent').

还有一个问题是,你将如何在 Laravel 中实现它?如果还需要什么评论。

谢谢!

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

标签: jqueryajaxlaravellaravel-5

解决方案


如果你仍然想使用 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

推荐阅读