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

Swift发送POST请求到Laravel后端返回Method Not Allowed如何解决

问题原因与解决方案

你遇到的405 Method Not Allowed错误主要由两个核心错误导致,还有几个可能的附加问题需要排查:

核心错误1:请求对象调用错误

你所有的请求配置(POST方法、请求头、请求参数)都写在了URLRequest对象里,但发起请求的时候调用的是session.dataTask(with: url),直接传入了原始URL,系统会默认用GET方法发起请求,和后端要求的POST方法不匹配,自然返回405。
修复方式:把请求调用改成传入你配置好的request对象:

let task = session.dataTask(with: request) { (data, urlResponse, error) in
    // 原有逻辑保持不变
}

核心错误2:请求路径和后端路由不匹配

你Laravel里定义的POST路由是SignIn,但Swift代码里请求的路径是/Api/V1/Verify,两个路径完全不匹配,Laravel找不到对应的POST路由就会返回405。
修复方式:

  • 先在Laravel项目根目录执行php artisan route:list,查看实际生成的路由完整路径
  • 把Swift代码里的URL改成和后端路由一致的路径,比如你路由定义的是SignIn,完整路径应该是http://192.168.xxx.xxx/BARI/public/api/v1/SignIn

其他需要排查的问题

  • 确认你的路由写在routes/api.php文件中:web.php默认会校验CSRF令牌,POST请求未携带令牌会报错,api.php的路由默认跳过CSRF校验,还自带api前缀
  • 注意路由大小写:Laravel路由区分大小写,请求路径的大小写要和路由定义完全一致,比如路由写的是SignIn,请求就不能写成signin
  • 如果你已经给路由组加了Api/V1的前缀,路由定义里不需要重复写前缀,否则会导致路径重复

内容的提问来源于stack exchange,提问作者Mohammed Riyadh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:27:02