[英]Laravel request()->ajax() triggering on browser back button
在我的控制器内部,我具有用于路由/backups
public function index()
{
$backups = \App\Backup::all();
if(request()->ajax()) {
return $backups;
}
return view('backups.index', compact('backups'));
}
我的想法是,如果我有我的JavaScript要求数据,那么如果不返回html
则返回json
。
这很好用,除非按下浏览器的后退按钮从说/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) {...}
});
我建议向ajax请求中添加一个仅ajax的查询字符串参数,例如?ajax=1
。
这样,您可以1.利用浏览器缓存,并2.为两种请求类型保留相同的Laravel路由。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.