При размещении в AWS EC2 Laravel Ajax выдает 419 неизвестных ответов о состоянии - PullRequest
0 голосов
/ 06 мая 2019

У меня есть эта проблема с Ajax Laravel при размещении в AWS-EC2, что приводит к неизвестному ответу о состоянии 419.

Я искал и пробовал почти все приведенные решения, но проблема все еще существует.

Мой метатег включает в себя CSRF

<meta name="csrf-token" content="{{ csrf_token() }}">

Ниже мой ajax-код laravel

$(document).ready(function () {
    var BASE_URL = "{{url('/')}}";
    $("form[name='logForm']").validate({
        rules: {
          log_email: {
            required: true,
            email: true
          },
           log_password: {
            required: true,
            minlength: 5
          },
        },
        messages: {
          log_email: "Please enter a valid email address",
          log_password: "Enter a valid password",
        log_email: "Please enter a valid email address"
        },
        submitHandler: function(form) {
         logForm();
        }
    });
    function logForm() {

        log_email=$("#log_email").val();
        log_password=$("#log_password").val();
        error=0;
        if (log_email == '' && log_password=='') {
            error = 1;
        }
        if (error == 0) {
            $.ajaxSetup({
                // beforeSend: function(xhr, type) {
                //     if (!type.crossDomain) {
                //         xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
                //     }
                // },
                headers: {
                  'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            });
            $.ajax({
                //url : BASE_URL + '/userlogin',
                url: '/userlogin',
                data: {
                    '_token':  '{!! csrf_token() !!}',
                    'email': $("#log_email").val(),
                    'password': $("#log_password").val()
                },
                dataType: 'json',
                type: 'POST',
                cache: false,
                success: function (response) {
                    if (response.type =='success') {
                        @if(Request::is('page-not-found'))
                         window.location=BASE_URL;
                         @else
                          window.location.reload();   
                         @endif
                    } else if(response.type=='suspended'){
                        $('#log_suspended').show();
                         $('#log_spiner').hide();
                    }
                    else {
                        $('#log_err').show();
                         $('#log_spiner').hide(); 
                        //alert(response.message);
                    }
                },
            });
        }
    }
});

Я прокомментировал несколько строк выше в jquery, это решения, которые я пробовал.

Попытка добавления, а также

contentType: false,
processData: false,

, если я добавляю processData, в консоли Form-Data она отображается как [объект объекта]

А ниже находится ЗапросЗаголовки и данные формы, которые взяты из консоли:

Request Headers and Form Data

И на моей странице web.php у меня есть следующее:

Route::post('/userlogin', 'HomeController@login');

Тот же код выше работает и на существующем хостинге, и на моем локальном хосте.

Я также убедился, что APP_URL и SESSION_DOMAIN в .env будут одинаковыми.

Я могу дать большеинформация при необходимости.

* Вопрос может звучать как дубликат, но эти вопросыswers не работал для меня при попытке.

Пожалуйста, сообщите.

Спасибо

-Vijay

1 Ответ

0 голосов
/ 07 мая 2019

Я нашел решение.

Многие вопросы указали, чтобы проверить это:

Я также убедился, что APP_URL и SESSION_DOMAIN в .env должны быть то же самое.

Но я нашел в одном из вопросов стека удаление SESSION_DOMAIN из .env, а затем убедитесь, что

'domain' => env('SESSION_DOMAIN', null),

строка присутствует в config / session.php

Это сработало для меня.

Может помочь кому-то, кто сталкивается с подобной проблемой, как у меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...