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

部署到Infinity Free的Laravel项目AJAX POST请求报404/405错误如何解决?

故障根因

这是Laravel子目录部署的典型路径适配问题:

  • 本地环境部署在站点根目录,绝对路径/add_to_cart会正确指向http://本地域名/add_to_cart,匹配路由规则
  • 线上部署在站点根目录下的new_shop子目录,绝对路径/add_to_cart会指向http://线上域名/add_to_cart,而非实际存在的http://线上域名/new_shop/add_to_cart,因此返回404。你删掉前置斜杠后首页路径正常,是因为首页本身在new_shop/路径下,相对路径拼接后刚好匹配目标地址,但详情页路径层级不同,相对路径拼接结果会出错。

解决方案

推荐以下两种兼容多部署环境的稳定方案,不需要针对不同页面单独调整路径:

  1. 全局JS变量注入站点根路径(最常用)
    在全站通用的Blade布局文件头部注入Laravel自动生成的站点根路径:
<script>
window.APP_ROOT = "{{ url('/') }}";
</script>

修改AJAX请求地址为拼接后的路径:

jQuery.ajax({
  url: window.APP_ROOT + "/add_to_cart",
  method: "post",
  data: jQuery('#formAddToCart').serialize(),
  success: function(result){}
})
  1. HTML base标签统一路径解析基准
    在全站通用的Blade布局文件<head>标签内加入base标签:
<base href="{{ url('/') }}">

所有AJAX请求直接写路由名称即可,不需要加前置斜杠:

url: "add_to_cart"

额外校验项

可以同步确认线上站点public目录下的.htaccess文件是否正常上传,确保Laravel伪静态规则生效,避免路由重写异常导致的404问题。

内容的提问来源于stack exchange,提问作者Akhlaque Ahmed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:06:03