it-swarm.cn

Ajax LARAVEL 419 POST错误

我真的很感谢这方面的帮助。我尝试了本论坛中发布的大量解决方案,但无法使其正常工作。

我的ajax电话就像

$(document).ready(function() {
    $("#company").click(function() {
        $.ajax({
            type: "POST",
            dataType:'html',
            url : "/company",
            success : function (data) {
                $("#result").html(data);
            }
        });
    });
});

我正在通过路线调用视图

Route::post('/company', '[email protected]');

和控制器

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

我收到此错误

POST http://127.0.0.1:8234/company 419 (unknown status)
37
Cowgirl

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

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

将此添加到您的ajax电话

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

或者您可以在VerifyCSRF令牌中间件中排除某些URI

 protected $except = [
        'stripe/*',
    ];
85
Dhiraj

当您不发布csrf_token时发生419错误。在post方法中,您必须将此令牌与其他变量一起添加。

6
Adnan Rasheed

遇到相同的问题,重新生成应用程序密钥有所帮助-php artisan key:generate

3
EXayer

您没有任何要提交的数据!尝试将此行添加到您的ajax:

data: $('form').serialize(),

确保您更改名称以使其匹配!

同样,您的数据也应在表单提交功能内提交。

您的代码应如下所示:

<script>
        $(function () {
                $('form').on('submit', function (e) {
                        e.preventDefault();
                        $.ajax({
                                type: 'post',
                                url: 'company.php',
                                data: $('form').serialize(),
                                success: function () {
                                        alert('form was submitted');
                                }
                        });
                });
        });
</script>
1
Lulceltech

我有同样的问题,最终导致php max帖子大小出现问题。增加它可以解决问题。

1
Francisco Isidori

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

当我在第二行而不是第一行中有一个带有<?php的配置文件时,我收到此错误。

0
eli

在执行操作时,您首先需要像这样加载公司:

$companies = App\Company::all();
return view('listing.company')->with('companies' => $companies)->render();

这将使companies变量在视图中可用,并且应正确呈现HTML。

尝试使用邮递员chrome扩展名调试视图。

0
teeyo