Проблема отправки файла json из javascript на контроллер laravel

-3

у меня возникают проблемы с попыткой отправить JSON файл из javascript в контроллер Laravel, когда я нажимаю свою кнопку из представления, я не получил никакого ответа.

Это мой код, я ценю любую помощь или предложение, thnks.

Это код JS:

var horarios= { Lunes: arrLunes, Martes: arrMartes, Miercoles: arrMiercoles, Jueves:arrJueves, Viernes:arrViernes};

var schedule = JSON.stringify(horarios);

//console.log(schedule);
var varurl= 'http://localhost/registerEntrance';

$.ajax({
   type: "POST",
   url: varurl,
   data: {json:schedule},
   dataType:'json',
   success: function(res) {
    var message = res.mesg;
    if (message) {
        $('.flash').html(message).fadeIn(300).delay(250).fadeOut(300);
    };
}
});

Когда я нажимаю свою кнопку, ничего не происходит. Следующий идентификатор маршрута и код контроллера, JSON файл еще не прибыл туда.

Route::post('registerEntrance', array('as' => 'registerEntrance','uses' => 'CursoController@regisEnt'));

public function regisEnt(){
  if(Request::ajax()) {
    $data = Input::all();
    return $data;
  }
}

Thnks для любой помощи.

2 ответа

0
Лучший ответ

Я получаю решение своей проблемы, я отправляю его, если у кого-то возникают подобные неудобства.

На мой взгляд, я не создал форму.

{!! Form::open(['route' => ['route'], 'method' => 'POST', 'id'  =>'form-name']) !!}
{!! Form::close() !!}

Эта часть создает неявный токен, который необходим в laravel для использования метода ajax.

Мой код JS был изменен для получения и отправки токена csrf.

var form = $('#form-name');
var myurl = form.attr('action');
crsfToken = document.getElementsByName("_token")[0].value;

$.ajax({
        url: myurl,  
        type: 'POST', 
        data: {data:data},
        datatype: 'JSON',
        headers: {
                "X-CSRF-TOKEN": crsfToken
            },

        success: function(text){
          bootbox.dialog({
            closeButton: false,
            message: "Ok!",
            title: "Perfect!!",
        },
        error: function(data){
           console.log("Error");
        }
    });

С этим изменением я прихожу к моему контроллеру.

В любом случае, Тинкс.

0

Что вы используете для отладки ваших запросов? Вы проверили storage/logs/framework/laravel.log (если ваш журнал HUGE, вы всегда можете удалить его и повторно запустить свой запрос)

Работа с AJAX может оказаться сложной, когда дело доходит до отладки ваших запросов. Моя рекомендация

  1. Откройте свой инспектор браузера и выполните мониторинг сетевых запросов
  2. Проанализируйте запрос, который вы отправляете.
  3. Установите debug в true в config/app.php чтобы увидеть отладочную

Надеюсь это поможет!

  • 0
    Спасибо за ваш скорый ответ, я вижу ошибку с токеном. TokenMismatchException
  • 0
    Тогда вам, вероятно, следует взглянуть на файл config / session.php, поскольку исключение Token Mistmatch связано с защитой CSRF, возможно, существует форма, которая не отправляет токен CSRF.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню