You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Dio.delete请求时出现405错误,Swagger调用正常求助

Dio Delete请求出现405错误的解决方案

问题分析

Get/Post请求正常,但Delete请求在应用中返回405(方法不允许),Swagger调用正常,核心原因大概率是:

  • 后端服务器不允许Delete请求携带请求体,而你的Dio请求通过data参数传递了请求体,同时全局配置了Content-Type: application/json,触发了后端的方法校验。
  • Swagger调用Delete时通常不会携带请求体(或采用了后端允许的参数传递方式),所以能正常响应。

可行解决方案

方案1:将参数改为URL查询参数传递

把原本放在请求体的参数放到URL的查询参数中,符合大多数后端对Delete请求的参数接收规范:

dio.delete(path, queryParameters: data);

方案2:移除Delete请求的Content-Type头部

覆盖全局的Content-Type配置,避免后端因为Delete请求带了JSON类型的请求体而返回405:

dio.delete(path,
  data: json.encode(data),
  options: Options(headers: {'Content-Type': null})
);

方案3:确认后端配置

如果上述方案无效,需要确认后端是否允许Delete请求携带请求体,是否需要调整后端的路由或跨域配置(比如CORS中是否允许Delete方法携带Content-Type)。

内容的提问来源于stack exchange,提问作者Mohammad Alamoudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:25:26