Laravel 5 Redirect在AJAX GET网址中不起作用

时间:2018-10-14 04:13:48

标签: php ajax laravel

我有一个日期选择器,并在更改时放置了一个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 :(得分:1)

首先从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') }}'
    }
});