我有一个使用Python的SimpleHTTPServer运行,在端口8080上运行的localhost环境。
我的项目由一个HTML文件,一个python脚本和一个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调用,而不仅仅是读取它并返回内容。
任何帮助将不胜感激!
答案 0 :(得分:1)
SimpleHTTPServer仅提供文件内容。如果要执行脚本并返回输出,则需要CGIHTTPServer。
请注意,两个模块均已在python 3中合并到http.server中。
答案 1 :(得分:0)
您需要更改以下行:
DeleteLogEntry
至xhttp.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。处理程序可以检查发布请求并运行所需的脚本。