使用fetch调用PHP文件返回404错误的原因与解决方法
404错误原因及解决方法
错误原因
- Python服务器不支持直接映射PHP文件:你通过
app.py启动的是Python服务器(比如Flask),这类服务器默认不会把项目根目录的PHP文件直接映射为可访问的URL路由。日志里的POST /importData.PHP请求,因为app.py没有配置对应路径的处理逻辑,服务器找不到对应资源,返回404。 - Python服务器无法解析PHP代码:即便你用了
../importData.PHP的相对路径,Python服务器本身不具备PHP运行环境和解析能力,无法处理PHP文件的执行请求。 - (额外排查点)文件名大小写:部分系统(如Linux/macOS)对文件名大小写敏感,需确保请求路径的文件名和实际文件完全一致(比如不要把
.PHP写成.php),不过从你的日志看,请求路径和文件名匹配,这个因素暂时可以排除。
解决方法
方案一:改用支持PHP的服务器运行
- 用XAMPP/WAMP等集成环境,将整个
Football-Manager-Analysis目录放到服务器根目录(比如XAMPP的htdocs文件夹)。 - 调整
index.html里的fetch路径:如果项目放在htdocs根目录,直接用/importData.PHP;如果是放在htdocs的子目录,就用/Football-Manager-Analysis/importData.PHP。 - 启动Apache服务器,访问
http://localhost/templates/index.html(根据你的目录结构调整访问URL)。
方案二:迁移逻辑到Python服务器(替代PHP)
如果不想更换服务器,把PHP里的业务逻辑迁移到app.py的路由中:
- 在
app.py中添加POST路由:
from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/importData', methods=['POST']) def import_data(): # 这里编写原本PHP中的数据处理逻辑 data = request.get_json() # 处理数据逻辑示例 print("收到的数据:", data) return jsonify({"status": "success", "message": "数据接收成功"}) if __name__ == '__main__': app.run(debug=True)
- 修改
index.html里的fetch请求路径为/importData,直接请求这个Flask路由即可。
内容的提问来源于stack exchange,提问作者Face of Coding
相关产品推荐
相关产品推荐

