使用香草JS

时间:2019-01-24 13:54:02

标签: javascript python html ajax

我有一个使用Python的SimpleHTTPServer运行,在端口8080上运行的localhost环境。

我的项目由一个HTML文件,一个python脚本和一个Javascript(原始)脚本组成。

我希望采用的方法如下:

  • 单击HTML中的按钮
  • 按钮触发Javascript AJAX请求
  • AJAX请求运行Python脚本
  • Python脚本生成JSON并将其返回给Javascript

我的JS是以下内容:

var json;

function trigger() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        json = xhttp.responseText;
        console.log(json);
    }
  };
  xhttp.open("GET", "./request.py", true);
  xhttp.send();
}

现在,而不是看到Python脚本的输出,我只是看到Python文件的内容(作为文本)。

我不确定运行.py脚本的正确AJAX调用,而不仅仅是读取它并返回内容。

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:1)

SimpleHTTPServer仅提供文件内容。如果要执行脚本并返回输出,则需要CGIHTTPServer

请注意,两个模块均已在python 3中合并到http.server中。

答案 1 :(得分:0)

您需要更改以下行: DeleteLogEntryxhttp.open("GET", "./request.py", true);xhttp.open("GET", "http://localhost:3333/<your-route>", true);是在您的python文件中定义的,并且我假设python网络服务器正在端口3333上运行。

如果您使用Flask并使用例如<your-route>定义路线, 该请求应如下所示:@app.route("/endpoint")

答案 2 :(得分:0)

您可以使用SocketServer代替默认服务器。将处理程序添加到SocketServer。代替GET,使用实际命令执行POST。处理程序可以检查发布请求并运行所需的脚本。