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

如何解决JavaScript调用Python代码时返回源码而非执行结果的问题

问题修复方案

问题根源

你直接请求.py文件时,本地静态服务器默认会将Python文件识别为普通静态文本资源返回,不会主动执行脚本逻辑,因此你拿到的是源码而非运行结果。

修复步骤

1. 搭建可执行Python逻辑的后端服务

这里以轻量的Flask框架为例,配置成本极低:

  • 先安装依赖:pip install flask flask-cors(flask-cors用于解决跨域问题)
  • 新建后端启动文件app.py,代码示例如下:
from flask import Flask
from flask_cors import CORS
# 导入你自己写的uploadFile.py
import uploadFile

app = Flask(__name__)
CORS(app) # 允许跨域请求

@app.route('/run-upload', methods=['GET'])
def run_upload_script():
    # 调用uploadFile.py中的核心执行逻辑,建议你把uploadFile里要执行的代码封装为main函数
    execute_result = uploadFile.main()
    # 返回执行结果给前端
    return str(execute_result)

if __name__ == '__main__':
    # 启动本地后端服务,端口为5000
    app.run(port=5000, debug=True)

2. 修改前端请求地址

把你原JS代码中直接请求uploadFile.py的部分,改成请求后端提供的接口:

const xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    alert(this.responseText);
    alert("hello from js");
  }
};
// 修改为后端接口地址,不再直接请求py文件
xhttp.open("GET", "http://localhost:5000/run-upload");
xhttp.send();

3. 运行测试

  • 先在终端执行命令启动后端服务:python app.py
  • 再打开你的前端页面,点击按钮即可拿到Python脚本的执行结果

补充说明:如果你不想用Flask框架,也可以配置Nginx、Apache等Web服务器的CGI规则,让服务器识别到.py后缀时自动执行脚本返回结果,但该方案配置门槛更高,更推荐上述轻量后端方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 12:06:03