我正在对页面进行一些更改,该页面需要从/ proc下的某些文件中检索信息,以便该页面可以向用户显示版本信息。当前,页面完全由Python脚本生成,这使我可以读取文件并将所有内容在创建时放入页面中。
但是,这导致了一个问题,即上载该软件的新版本时,版本号不会更新。我不想每次安装新软件包时都重新生成页面,因此我将主页设为静态,而是只想从Python脚本中查询信息,然后将其返回页面以在加载时填充页面。
Python脚本设置为CGI并具有sudo访问权限,因此它们检索这些文件没有问题。但是,如果我想使用AJAX之类的东西来调用Python脚本,是否有任何方法可以在不使用REST框架(例如Flask或Django)的情况下返回数据?该应用程序必须是轻量级的,并且最好不要依赖新的框架。
我可以用香草JavaScript和Python做到这一点吗?
好的,所以解决方案非常简单,我只是犯了一些语法错误,导致它在尝试几次后就无法使用。
因此,请求看起来像这样:
window.onload = function() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if((this.readyState == 4) && (this.status == 200)) {
var response = JSON.parse(this.responseText);
// Do stuff with the JSON here...
}
};
xhr.open("GET", scriptURL, true);
xhr.send();
}
从那里开始,Python脚本只需要执行以下操作即可返回包含我的版本号的JSON数据:
import sys, cgi, json
result = {}
result['success'] = True
result['message'] = "The command completed successfully"
d = {}
... write version information to the 'd' map ...
result['data'] = d
sys.stdout.write("Content-Type: text/plain\n\n")
sys.stdout.write(json.dumps(result))
sys.stdout.write("\n")
sys.stdout.close()
使我永远无法找到的最持久的问题是我忘记了脚本标记中的右引号,这导致整个页面无法加载。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。