Php Ajax LARAVEL 419 POST错误

Php Ajax LARAVEL 419 POST错误,php,jquery,ajax,laravel,Php,Jquery,Ajax,Laravel,我真的很感谢你在这方面的帮助。 我尝试了很多在这个论坛上发布的解决方案,但我无法让它发挥作用 我的ajax调用类似于 $(document).ready(function() { $("#company").click(function() { $.ajax({ type: "POST", dataType:'html', url : "/company", success :

我真的很感谢你在这方面的帮助。 我尝试了很多在这个论坛上发布的解决方案,但我无法让它发挥作用

我的ajax调用类似于

$(document).ready(function() {
    $("#company").click(function() {
        $.ajax({
            type: "POST",
            dataType:'html',
            url : "/company",
            success : function (data) {
                $("#result").html(data);
            }
        });
    });
});
我通过我的路线呼叫视图

Route::post('/company', 'Ajaxcontroller@loadContent');
和控制器

public function loadContent()
    {
        return view('listing.company')->render();
    }
我的company.blade.php是

    @foreach ($companies as $company)
            <div class="posting-description">
            <h5 class="header"><a href="#"></a>{{$company->name}}
            </h5>
            <h5 class="header"> {{$company->streetaddress}} {{$company->postalcode}}</h5>  
            <p class="header">
             <span class="red-text"> <?= $service; ?> </span> is available on <span class="green-text"><?php echo $date; ?></span>
           </p>
    @endforeach

您没有正在提交的任何数据!尝试将这一行添加到ajax中:

data: $('form').serialize(),
请确保更改名称以匹配

您的数据也应该在表单提交函数中提交

您的代码应该如下所示:


$(函数(){
$('form')。关于('submit',函数(e){
e、 预防默认值();
$.ajax({
键入:“post”,
url:'company.php',
数据:$('form')。序列化(),
成功:函数(){
警报(“表格已提交”);
}
});
});
});

在laravel中,可以使用视图渲染。 前任。 $returnHTML=view('myview')->render();
myview.blade.php包含您的刀片代码

在您的操作中,您首先需要加载如下公司:

$companies = App\Company::all();
return view('listing.company')->with('companies' => $companies)->render();
这将使companys变量在视图中可用,并且它应该正确地呈现HTML


尝试使用postman chrome扩展来调试您的视图。

Laravel 419 post错误通常与api.php和令牌授权有关

Laravel会自动为应用程序管理的每个活动用户会话生成一个CSRF“令牌”。此令牌用于验证经过身份验证的用户是否是实际向应用程序发出请求的用户

将此添加到ajax调用中

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
或者,您可以在VerifyCSRF令牌中间件中排除一些URI

 protected $except = [
        '/route_you_want_to_ignore',
        '/route_group/*
    ];


我也遇到了同样的问题,结果是php最大帖子大小出现了问题。增加它解决了问题。

419当您不发布csrf\u令牌时,会发生错误。在您的post方法中,您必须添加此令牌以及其他变量。

我收到此错误时,我有一个配置文件与
有相同的问题,重新生成应用程序密钥帮助-
php artisan密钥:generate

当活动用户会话的CSRF“令牌”过期时,您也可能会收到此错误,即使令牌是在ajax请求中指定的。

您知道这个
@foreach
是一个模板引擎而不是PHP吗?如果你不调用数据库,它应该如何为公司请求数据库,而且CSS是一种解释语言,所以说它编译CSS文件是不正确的!最后,是的,您应该在控制器中执行逻辑,然后将要呈现的视图的结果传递给Ajax!是的,我知道。它也不会编译类似的东西。我应该如何调用数据库,你能解释一下吗?你正在使用Laravel,一个MVC框架,你需要在你的控制器中创建一个到一个动作的路由。在这个动作中,你将使用eloquent调用数据库,并将结果传给应该返回HTML的视图。我也知道这一点。我尝试过这样做,但在我的例子中,我将雄辩传递给我的视图,但是特定的视图需要从get方法访问URL中的变量,它不能这样做。此外,我不想在该视图中包含导航栏和其他内容。您创建视图的一部分时没有扩展导航栏和其他组件,并且只放置循环代码,我不明白您为什么不能访问变量?您将变量传递给视图,这意味着它将在视图中可用!尽管如此,据我所知,他在控制器中没有任何逻辑:)我的意思是,除了AJAX之外,他还有更多的问题,但他问的是AJAX部分,所以我只是给他一个答案:PEven如果我渲染,它抛出500个错误,因为该视图没有访问搜索表单的当前URL get的权限。删除此数据类型:'html',我获得此URL的未知419状态ID:“company.php”,,必须是路由名称,您使用Laravel MVC。是的,我正在URL中包括路由名称。我也在这样做,我只是使用compact函数将companys变量传递给listing.company viewWell
->render()
应该呈现HTML,您应该得到一个包含HTML的字符串,没有刀片标签!很抱歉,我没有可用的Laravel安装,因此我可以与您一起调试。值得注意的是,有些人更改了meta name属性。我正在处理的项目中的一个被重命名为
\u token
 protected $except = [
        '/route_you_want_to_ignore',
        '/route_group/*
    ];