WordPress迁移后WooCommerce购物车加载失败,jquery.min.js相关AJAX请求返回404错误
WordPress迁移后WooCommerce购物车加载失败,jquery.min.js相关AJAX请求返回404错误
首先得帮你理清一个容易误解的点:控制台里显示的jquery.min.js?ver=3.6.0:2只是发起AJAX请求的文件,真正的问题是那个GET https://some-page-here的请求返回了404——这个请求其实是WooCommerce用来更新购物车/结账信息的AJAX接口,和jquery文件本身是否存在无关(你已经确认过jquery文件在wp-includes里了)。
结合你迁移的场景,我给你几个针对性的排查和解决步骤,按顺序试:
1. 刷新WordPress固定链接规则(最常见的迁移后AJAX问题)
迁移后很多时候固定链接的重写规则会失效,导致WooCommerce的AJAX路由无法被正确解析:
- 登录WordPress后台,进入「设置」→「固定链接」
- 随便选择一个和当前不同的规则(比如从“文章名称”改成“朴素”),点击「保存更改」
- 再切回你原来使用的固定链接规则,再次保存
- 这一步会自动刷新.htaccess(Apache)或者Nginx的重写规则,很多AJAX 404问题都能靠这个解决
2. 检查WooCommerce的AJAX端点可用性
打开浏览器控制台,找到那个404的GET请求,复制完整的URL(应该是类似https://你的域名/?wc-ajax=update_checkout或者https://你的域名/wp-admin/admin-ajax.php?action=update_checkout),直接在新标签页打开:
- 如果打开后返回
0,说明端点本身是正常的,问题可能出在前端触发请求的逻辑或者缓存 - 如果还是返回404,说明这个AJAX路由无法被解析,需要排查:
- 确认
wp-admin/admin-ajax.php文件存在,权限设置为644(文件权限),wp-admin目录权限为755 - 联系主机商检查是否开启了URL重写模块(Apache的mod_rewrite,Nginx的rewrite配置),专用WP主机有时候会默认关闭或者配置错误
- 确认
3. 排查主机环境的安全拦截
因为是专用WP主机,可能有内置的安全规则(比如ModSecurity)拦截了WooCommerce的AJAX请求:
- 联系主机支持,让他们检查是否有针对
admin-ajax.php或者wc-ajax动作的拦截记录 - 可以临时请求主机商关闭ModSecurity测试一下,如果关闭后正常,说明是规则误拦,需要他们调整规则
4. 排除主题和插件的干扰
- 临时切换到WordPress默认主题(比如Twenty Twenty-Three),测试购物车是否正常加载——有些主题会自定义购物车的AJAX逻辑,迁移后可能和新主机环境不兼容
- 除了WooCommerce本身,暂时禁用所有其他插件,然后逐个启用测试,看是否是某个插件(比如安全、优化类)干扰了AJAX请求
5. 检查数据库中的站点URL和WooCommerce页面设置
- 进入后台「设置」→「常规」,确认「WordPress地址(URL)」和「站点地址(URL)」都是新主机的正确地址,没有残留旧VPS的地址
- 进入「WooCommerce」→「设置」→「高级」,确认「购物车页面」「结账页面」等都正确选择了对应的页面,没有缺失或者错误
6. 重置WooCommerce的临时数据
进入后台「WooCommerce」→「状态」→「工具」,运行以下工具:
- 清除过期的会话
- 清除Transients
- 重置图库缩略图
这些操作会清除WooCommerce缓存的一些旧数据,可能解决迁移后的数据不兼容问题
如果以上步骤都试过还是不行,建议让主机商直接查看服务器的访问日志,找到那个404请求的具体URL和服务器返回404的原因(比如是文件不存在、权限不足还是规则拦截),这比只看浏览器控制台的信息更准确。
备注:内容来源于stack exchange,提问作者Maxim507
相关产品推荐
相关产品推荐

