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

图片上传遇readyState 0错误,疑与.htaccess重写有关?

图片上传AJAX报错排查与解决(关联.htaccess重写规则)

问题概况

  • 相同的图片上传表单+AJAX代码在其他页面正常运行,但在配置了以下.htaccess重写规则的页面出现错误:
    RewriteRule ^new-listing listing.php?item=$1 [NC,L,QSA]
    
  • 报错信息:{"readyState":0,"status":0,"statusText":"error"}
  • 怀疑重写规则导致AJAX请求路径异常

解决建议

1. 修正AJAX请求的绝对路径

当前AJAX使用相对路径../functions/main_media_upload.php,页面URL被重写后(从listing.php?item=xxx变为/new-listing),相对路径的基准目录发生变化,导致请求指向错误位置。
把请求URL改为绝对路径,示例:

url: '/functions/main_media_upload.php',

2. 在.htaccess中排除上传脚本目录

现有重写规则可能误拦截了对functions目录的请求,需要在规则前添加排除逻辑:

# 排除functions目录,跳过后续重写
RewriteRule ^functions/ - [L]

# 原有重写规则
RewriteRule ^new-listing listing.php?item=$1 [NC,L,QSA]

3. 阻止表单默认提交行为

当前代码未阻止表单的默认同步提交动作,可能导致页面跳转、中断AJAX请求。在submit事件处理开头添加阻止代码:

$('#upload_media_form').on('submit',(function(e) {
    e.preventDefault(); // 新增此行,阻止默认提交
    var formData = new FormData(this);
    // 后续AJAX逻辑...
}))

4. 验证请求实际路径

打开浏览器开发者工具的Network面板,查看AJAX请求的实际URL,确认是否返回404或其他错误状态,以此排查路径是否真的正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 09:34:52