Javascript Laravel Ajax 419生产错误,但不是本地开发错误,/storage/logs/Laravel.log中没有任何内容

Javascript Laravel Ajax 419生产错误,但不是本地开发错误,/storage/logs/Laravel.log中没有任何内容,javascript,php,ajax,laravel,laravel-5,Javascript,Php,Ajax,Laravel,Laravel 5,所以我遇到了这个问题,在通过项目提交AJAX请求时出现了419错误代码。我知道这个错误是由于CSRF令牌没有被传递,或者无效 背后的故事:我在我的项目上创建了一个“维护模式”。此维护模式通过显示503错误页面来限制对前端的访问,但仍允许管理员访问后端以更新站点等。这是使用一些中间件完成的。有关如何实现此功能的更多信息,请参见我的github页面上的代码 所以这可能是我的生产环境中503错误页面的问题?我不太确定 我已经在SOF上查看了这个问题和答案,但它似乎对我没有任何帮助 这是生产站点,请

所以我遇到了这个问题,在通过项目提交AJAX请求时出现了419错误代码。我知道这个错误是由于CSRF令牌没有被传递,或者无效

背后的故事:我在我的项目上创建了一个“维护模式”。此维护模式通过显示503错误页面来限制对前端的访问,但仍允许管理员访问后端以更新站点等。这是使用一些中间件完成的。有关如何实现此功能的更多信息,请参见我的github页面上的代码

所以这可能是我的生产环境中503错误页面的问题?我不太确定

我已经在SOF上查看了这个问题和答案,但它似乎对我没有任何帮助

这是生产站点,请查看控制台以了解更多信息:

以下是我关于419错误的代码:

Javascript

$(document).ready(function() {

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



    // Add Section Post Button
    $('#subscribeButton').click(function(event) {
        /* Act on the event */

        // Clear Feedback Boxes
        $('#valid-feedback').css("display", "none");
        $('#invalid-feedback').css("display", "none");
        // Input Field  
        var email = $('#email').val();
        var token = $('meta[name="csrf-token"]').attr('content');

        console.log(email);
        console.log(token);
        // Post
        $.ajax({
            type: 'POST',
            url: '/email/subscribe/',
            dataType: 'json',
            data: {
                email: email,
                "_token": token,
            },
            success: function (data) {
                // Check Server Side validation
                if($.isEmptyObject(data.errors)){
                    // Show the Feedback Div
                    $('#valid-feedback').css("display", "block");
                    // Add the Bootsrapt Is Invalid Class
                    $('#email').addClass('is-valid');
                    // Validation Failed Display Error Message
                    $('#valid-feedback').text(data['success']);
                    // Animate the Object
                    $('#email').animateCss('tada', function() {});

                    console.log(data['success']);
                }else{
                    // Show the Feedback Div
                    $('#invalid-feedback').css("display", "block");
                    // Add the Bootsrapt Is Invalid Class
                    $('#email').addClass('is-invalid');
                    // Validation Failed Display Error Message
                    $('#invalid-feedback').text(data.errors[0]);

                    // Animate the Object
                    $('#email').animateCss('shake', function() {});

                    console.log(data.errors);
                }

            },
            error: function (data) {
                console.log(data);
            }
        }); // End Ajax POST function

    }); // End Click Event

    // On Focus of the Email Box
    $('#email').focus(function(event) {
        /* Act on the event */
        $('#valid-feedback').css("display", "none");
        $('#invalid-feedback').css("display", "none");
    });

}); // End Document Ready
HTML表单

<div class="input-group input-group-newsletter">
    <input type="email" class="form-control" placeholder="Enter email..." aria-label="Enter email..." aria-describedby="basic-addon" id="email">
    <div class="input-group-append">
        <button class="btn btn-secondary" type="button" id="subscribeButton">Notify Me!</button>
    </div>
    <div id="invalid-feedback" class="invalid-feedback"></div>
    <div id="valid-feedback" class="valid-feedback"></div>
</div>
我的路线呢

// Email Routes
Route::prefix('email')->group(function() {

    // Create Post Route for subscribing
    Route::post('/subscribe', 'EmailSubscriptionsController@subscribe')->name('email.subscribe');

});

为了以防万一,它可以帮助别人,我们遇到了同样的问题,这是由于服务器空间磁盘问题。因此,Laravel无法写入文件(尤其是sessions.php)。

检查您的
存储/logs/Laravel.log
文件。应该包含错误的实际堆栈跟踪。日志文件为空。日志文件确实显示了错误,尽管在服务器上设置项目时,我遇到了数据库错误,在运行迁移之前,等等。。。以下是终端视图:您是如何确定错误是由无效的CSRF令牌引起的?还有一个愚蠢的问题,但是,您是否刷新了主页?CSRF令牌最终将在大约15分钟后过期。我只是假设这是一个CSRF问题,因为大多数419错误代码都是这样的。。。或者至少这是我使用谷歌时弹出的声音。对哈哈,我已经刷新了页面。毫无疑问,这太傻了。
// Store the Email into the database
public function subscribe(Request $request) {

    // Validate the request
    $validator = Validator::make($request->all(), [
        'email' => 'required|email|max:255|unique:email_subscribers,email',
    ]);

    // If the validation fails
    if($validator->fails()) {
        return response()->json([
            'errors' => $validator->errors()->all(),
        ]);
    }

    // New Section Object
    $subscription = new EmailSubscription;

    // Add Name into Section Object
    $subscription->email = $request->email;

    // Save the Section
    $subscription->save();

    // Return The Request
    return response()->json([
        'success' => 'You have successfully subscribed! Check your email!'
    ]);
}
// Email Routes
Route::prefix('email')->group(function() {

    // Create Post Route for subscribing
    Route::post('/subscribe', 'EmailSubscriptionsController@subscribe')->name('email.subscribe');

});