Ajax+PHP验证时出现GET 404错误,请求URL及参数看似正常
排查Ajax请求404 (Not Found) 错误的思路
看起来你遇到了404 NotFound错误,这通常意味着服务器找不到你请求的actualizarIngreso.php文件。咱们一步步拆解可能的问题:
确认文件路径的准确性
你请求的URL是http://localhost/municipia1/modulos/ingresos/actualizarIngreso.php,先手动核对服务器目录结构:- 如果用XAMPP/WAMP,检查
htdocs/municipia1/modulos/ingresos/下是否存在actualizarIngreso.php文件,别漏了层级或拼错文件夹/文件名。 - 注意相对路径的陷阱:如果你的Ajax代码所在页面不在
modulos/ingresos/目录下,相对路径可能会指向错误位置。建议改用绝对路径(比如从根目录开始的/municipia1/modulos/ingresos/actualizarIngreso.php)来避免歧义。
- 如果用XAMPP/WAMP,检查
检查文件名的大小写
如果你的服务器运行在Linux/Mac/WSL环境,文件名是区分大小写的。比如代码里写的是actualizarIngreso.php,但实际文件名叫ActualizarIngreso.php或actualizaringreso.php,都会触发404。仔细核对文件名的大小写是否完全匹配。排查服务器配置或重写规则
- 如果你使用了
.htaccess做URL重写,检查是否有规则拦截了对actualizarIngreso.php的直接请求(比如隐藏.php后缀的规则可能导致直接访问PHP文件失败)。 - 确认服务器是否允许访问该目录下的PHP文件,有些主机配置会限制特定目录的访问权限。
- 如果你使用了
验证参数是否影响路径解析
虽然你说参数传递无误,但可以先去掉参数,直接在浏览器地址栏访问http://localhost/municipia1/modulos/ingresos/actualizarIngreso.php:- 如果直接访问仍404:问题出在文件路径或服务器配置上。
- 如果直接访问能正常打开:说明参数本身没问题,可能是Ajax代码里的URL拼接逻辑有隐藏错误。
清除缓存或检查拼写细节
- 浏览器缓存可能保留旧的错误请求,尝试按
Ctrl+F5强制刷新页面,或用隐身模式重新测试。 - 再仔细检查Ajax代码中的URL拼写:有没有多写/少写斜杠?比如
modulos/ingresos/前后的斜杠是否正确?
- 浏览器缓存可能保留旧的错误请求,尝试按
最后,你可以直接在浏览器地址栏输入完整请求URL(http://localhost/municipia1/modulos/ingresos/actualizarIngreso.php?recibo=2017-00090),如果直接访问也404,那优先排查文件存在性和路径问题;如果能访问,再回头检查Ajax代码里的URL是否写错了。
内容的提问来源于stack exchange,提问作者I. Valera
相关产品推荐
相关产品推荐

