【问题标题】:DELETE request is not changing to GET on redirectDELETE 请求在重定向时不会更改为 GET
【发布时间】:2025-12-17 02:50:01
【问题描述】:

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

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

请提出解决方案

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

【问题讨论】:

    标签: redirect grails grails-controller


    【解决方案1】:

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

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

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

    【讨论】: