![](/img/trans.png)
[英]How to change the value of a client-side variable from the Meteor shell?
[英]How to run shell command from javascript client-side?
我有最简单的程序:1个HTML文件,1个CSS文件,1个JS文件,直接在我自己的电脑上运行。 我想要做的是,当您按下程序中的一个按钮时,一个shell 命令(Windows) 会直接在计算机上运行。 这将生成文件,该文件又将在程序内部进一步使用。
看来您不能仅通过 JS 访问本地文件,所以我安装了 NodeJS(这对我来说是全新的)。 但我仍然无法让它以这种方式工作。
我最终让 NodeJS 以 JS 和 CSS 文件也可以工作的方式托管 HTML 页面的唯一方法是复制我在此处获得的代码: Z5E056C500A1C4B6A7110B50D807BADE6Z3://310D80D807BADE6Z5com 。 (我称之为server.js )。
但是我仍然无法找到在客户端运行该 shell 命令时调用server.js的方法。 一些帖子建议为此使用 AJAX ,例如此处https://stackoverflow.com/a/53897335 ,但我无法找到任何方法在server.js中成功捕获它。
我想出了如何以另一种迂回的方式做到这一点:
使用 Django,您可以轻松地将 JS 和 Python 结合起来,并且 Python 可以更轻松地运行 Z2591C98B701129BEE944 个命令。
如果有人想要确切的代码:
Python (views.py):
import subprocess
def home(request):
if request.META.get('HTTP_X_REQUESTED_WITH') == 'XMLHttpRequest':
subprocess.call(["ls", "-l"])
return render(request, 'index.html')
Javascript:
function toView() {
var csrftoken = $("[name=csrfmiddlewaretoken]").val();
$.ajax({
method: 'POST',
url: '',
headers:{
"X-CSRFToken": csrftoken
},
data: {},
success: function (data) {
alert("it worked!");
},
error: function (data) {
alert("it didnt work");
}
});
}
HTML (index.html):
<form method="post">
{% csrf_token %}
<button type="button" onclick="toView()">Do x</button>
</form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.