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

OpenCart 2.0.1.1后台订单页JSON解析错误与301跳转求助

解决OpenCart 2.0.1.1后台订单页JSON解析错误与301跳转问题

问题原因分析

这个问题的核心是后台订单页面的AJAX请求被错误重定向到了api/voucher/add接口:原本应该返回JSON数据的请求,却返回了301跳转的HTML页面,前端尝试把HTML内容解析成JSON,自然就触发了SyntaxError: JSON.parse: unexpected character错误。

具体可能的触发点:

  • 服务器URL重写规则(.htaccess)配置错误,误将后台AJAX请求导向API接口
  • 第三方扩展冲突(尤其是优惠券/订单管理类插件)干扰了后台订单页的路由逻辑
  • 站点HTTPS/HTTP强制跳转配置有问题,导致请求被意外重定向

分步解决方法

1. 检查并修复.htaccess文件

先排查网站根目录的.htaccess文件,确认重写规则没有错误拦截后台请求:

  • 打开.htaccess,找到核心重写规则:
    RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
    
    确保这条规则不会把admin/sale/order相关的AJAX请求错误重写。
  • 如果站点启用了HTTPS,检查强制跳转规则,比如:
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    确认后台请求能被正确覆盖,不会出现跨协议的错误跳转。

2. 排查第三方扩展冲突

因为错误跳转指向api/voucher/add,大概率和优惠券类插件有关:

  • 临时禁用所有已安装的第三方扩展(重点排查优惠券、订单管理类),刷新后台订单页测试错误是否消失。
  • 如果禁用后问题解决,再逐个重新启用扩展,定位到冲突插件,要么更新至兼容OpenCart 2.0.1.1的版本,要么替换为其他替代插件。

3. 修复核心路由配置

如果前两步无效,可能是核心路由文件被篡改:

  • 检查admin/controller/sale/order.php,确认AJAX相关方法(比如getList)的请求路径未被恶意修改。
  • 检查catalog/controller/api/voucher.php,确认add方法的路由未被错误绑定到后台订单页的请求上。

4. 清除缓存与会话

  • 进入OpenCart后台,通过「系统→设置→编辑商店→服务器→清除缓存」清理系统缓存
  • 清除浏览器缓存,或使用隐私模式打开后台,测试问题是否依然存在

额外提示

如果问题是近期才出现的,回忆下最近是否修改过服务器配置、安装过新插件或更新过核心文件,这些操作通常是触发此类问题的诱因。

内容的提问来源于stack exchange,提问作者Shoaib Fareed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 12:42:39