【发布时间】:2018-02-15 19:22:36
【问题描述】:
我有一个表格,我在其中显示类别列表和每行上每个类别的删除按钮。使用以下路由通过 ajax 调用删除操作:
Route::delete('category/delete/{id}','CategoriesController@destroy')->name('category.delete');
它工作正常。但是后来我让页面保持打开状态,一段时间后页面仍然打开时又回来了。现在,当我尝试删除一个类别时,我的控制器收到 Method not allowed 错误。我认为这与会话过期有关。
我的问题是:
1. 为什么会这样
2.我如何在服务器端处理这个问题,以便在会话过期并且用户尝试访问受保护的路由(通过 ajax)时,服务器会检测到会话到期并向 ajax 调用或重定向发送特定响应用户到登录页面。
我的 ajax 调用期望从服务器返回一个 json 类型。
谢谢,
【问题讨论】:
-
哪个版本的 Laravel?你在使用
api路由吗?如果是这样,则会话未通过它,您需要手动检查它或添加中间件。 -
如果您的会话已过期,那么它将重定向到登录 (302) 或给出 401 响应代码。您应该检查您的请求的响应代码。
-
@UnamataSanatarai:不,我没有使用 api 路由。
-
@GopalKildoliya:在网络选项卡中,我可以看到此请求的状态代码是 302 Found 但在位置字段中告诉我再次被重定向到此页面(@ 987654321@) 而不是登录页面。我想这就是为什么我得到状态代码 405 Method not allowed 因为这是一个 GET 路由,但在这里被重定向为 DELETE 路由。
标签: jquery ajax laravel session