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

Prestashop使用WebvoltyTemplate时搜索等ajax请求返回403错误排查求助

403错误排查思路

服务端配置排查

  • 检查modules/wtcmssearch/目录下的.htaccess文件,大部分CMS的模块目录默认会配置全局禁止PHP文件直接访问的规则,比如Require all denied(Apache 2.4)或deny from all(Apache 2.2)。如果存在该规则,添加针对ajax.php的访问豁免:
<Files "ajax.php">
    Require all granted
</Files>
  • 检查Apache虚拟主机的全局安全配置,是否存在拦截/modules/路径下PHP文件执行的规则,这类规则是常见的拦截原因。
  • 你已经关闭了mod_security,可跳过WAF层面的拦截排查。

请求参数校验排查

  • 你当前的AJAX参数拼接存在错误:JS代码中直接用&amp;拼接参数,会导致服务端无法正确识别category_id和token字段。如果服务端有参数完整性校验或token校验,就会直接返回403。建议改为对象格式传参避免拼接错误:
data: {
    search_words: search_words,
    category_id: cat_id,
    token: static_token
}
  • 打印确认static_token的值是否有效,大部分CMS的AJAX接口都会校验请求token,token为空或错误会直接返回403。
  • 检查请求头是否携带X-Requested-With: XMLHttpRequest,很多接口会判断是否为异步请求,非异步请求直接返回403。

服务端代码逻辑排查

  • 在ajax.php文件最开头加入调试代码,确认请求是否能走到业务逻辑层:
<?php
echo 'access test';
exit;
// 原有代码保持不变

如果访问仍然返回403,说明问题出在服务器配置层面;如果能正常输出内容,说明是接口本身的权限校验逻辑返回的403,继续向下排查。

  • 检查ajax.php中是否有来源校验逻辑,比如校验HTTP_REFERER是否属于本站,域名更换或本地调试时会触发该校验返回403。
  • 检查ajax.php中是否有用户权限校验逻辑,比如要求登录后才能访问搜索接口,未登录状态请求会返回403。
  • 检查CMS后台的模块配置,确认wtcmssearch模块的前端访问权限是否对游客/普通用户开放。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:06:01