我为登记了GET一条路线laravel.dev/test。路由的相应控制器将区分请求是否为ajax。
当我laravel.dev/test在浏览器中键入内容时,Laravel会检测到它不是ajax请求,并用于return View::make()生成页面。然后Backbone.js,页面上的代码向发出ajax请求laravel.dev/test,Laravel使用return Response::json它返回JSON。
一切正常,直到我尝试离开页面,然后使用浏览器按钮导航回去时laravel.dev/test,它会打印出json作为响应,这不是我期望的,因为我没有发出ajax请求。
肯定是缓存问题。只是为了尝试获得一些结果,请将其添加到您的控制器(ajax 和非 ajax)以强制禁用缓存:
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
并查看 chrome 是否仍然从后退按钮上的缓存中获取。