首页 > 解决方案 > DELETE 请求在重定向时不会更改为 GET

问题描述

我正在向DELETE控制器中的删除方法发送类型 Ajax 请求。为了成功删除,我试图重定向到同一控制器中的另一个方法,该方法重新加载列表并且属于GET类型。

目前,我的删除操作在默认状态代码 302 下运行良好,但在重定向时,它正在重定向,'Request Method: DELETE' instead of 'GET'这是Grails的默认行为。

请提出解决方案

redirect(action: 'list',controller:'dashboard')

标签: redirectgrailsgrails-controller

解决方案


如果您想进行重定向,您应该进行 http 调用而不是 Ajax 调用。重定向由您的浏览器自动处理,因此您无法将其从删除更改为获取。您可以尝试在回调/承诺中使用转发或单独调用列表。

或者,如果您想将其保留在一个 Ajax 调用中,我希望您的仪表板控制器、列表操作将调用服务以获取其数据。因此,我不会进行重定向,而是调用该服务并返回该数据。

我说希望是因为我见过很多例子,人们把业务逻辑放在控制器中,它不属于它,而不是把它移到服务中,在那里它可以被重用。


推荐阅读