Laravel 5 Redirect не работает с AJAX GET url - PullRequest
0 голосов
/ 14 октября 2018

У меня есть средство выбора даты, и я изменяю его слушатель jquery:

$('#viewmonth').datepicker({language: 'ja', autoclose: true,  minViewMode: 'months', format: $('#month_format').text(),})
.change(function() {
    let date = $(this).datepicker("getDate");
    let month = date.getMonth() + 1;
    date = date.getFullYear() + '-' + month;

    $.ajax({
        headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
        type:'GET',
        url:'/head/sale/h_2_501/changeMonth',
        data: {'viewmonth': date}
    });
});

Когда дата изменяется, она перенаправляет на функцию changeMonth:

public function changeMonth() {
    $viewmonth = date("Y-m-d", strtotime(Request::input('viewmonth')));
    $viewmonth = mb_convert_kana($viewmonth, 'a');

    error_log($viewmonth);

    $filter = $this->pageInfo['filter'];

    $filter['viewmonth'] = $viewmonth;

    $this->updateFilterData($filter);

    return redirect()->route('head.sale.h_2_501');
}

ВнутриЭта функция, я изменяю дату запроса, который я использую для отображения некоторых данных.Проблема заключается в том, что после перенаправления на индексный маршрут внутри changeMonth отображение результатов не меняется, но запрос изменился.Как мне также обновить отображаемые данные?

1 Ответ

0 голосов
/ 14 октября 2018

Сначала удалите return redirect()->route('head.sale.h_2_501'); из функции changeMonth().

Затем добавьте его в успешный вызов AJAX.

$.ajax({
    headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
    type:'GET',
    url:'/head/sale/h_2_501/changeMonth',
    data: {'viewmonth': date},
    success: function (response) {

        // this is the redirect after your changeMonth() function succeed.
        window.location = '{{ route('head.sale.h_2_501') }}'
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...