在我的控制器内部,我对路由/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调用的功能?

最佳答案

确保您的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) {...}
});

关于javascript - Laravel request()-> ajax()在浏览器后退按钮上触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48557224/

10-09 01:34