Laravel request() - > ajax()在浏览器后退按钮上触发

时间:2018-02-01 07:14:27

标签: javascript php laravel

在我的控制器中,我有路由/backups

的此功能
public function index()
{
    $backups = \App\Backup::all();

    if(request()->ajax()) {
        return $backups;
    }

    return view('backups.index', compact('backups'));
}

我的想法是,如果我有我的javascript请求数据,那么如果不返回json则返回html

这样可以正常工作,除非按下浏览器后退按钮以从/backups/1转到/backups,它会显示json

我可以使用另一个只能响应来自我的代码而不是浏览器的ajax调用的函数吗?

1 个答案:

答案 0 :(得分:1)

确保您的AJAX请求使用完整HTML文档中的其他URL。 Chrome(很可能是Firefox)会缓存最近的请求,即使它只是部分请求。

<强>来源:

https://code.google.com/p/chromium/issues/detail?id=108425

尝试将缓存设置为false

$.ajax({
    dataType: "json",
    url: url,
    cache: false,
    success: function (data) {...}
});