网页和Python脚本都是Raspberry Pi中的本地(没有互联网连接)。
从命令行调用时,Python脚本运行正常。
网页中的JavaScript使用AJAX来调用Python脚本:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
alert('readyState: '+ xmlhttp.readyState) // Returns: 4
alert('status: '+ xmlhttp.status) // Returns: 0
alert('statusText: '+ xmlhttp.statusText) // Returns: (Blank)
alert('responseText: '+ xmlhttp.responseText) // Returns contents of script
}
xmlhttp.open("POST", "myscript.py", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send('test');
我也试过“GET”,结果相同:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
alert('readyState: '+ xmlhttp.readyState) // Returns: 4
alert('status: '+ xmlhttp.status) // Returns: 0
alert('statusText: '+ xmlhttp.statusText) // Returns: (Blank)
alert('responseText: '+ xmlhttp.responseText) // Returns contents of script
}
xmlhttp.open("GET", "myscript.py", true);
xmlhttp.send();
脚本未执行(我可以从日志中看出)。
我误解了AJAX可以做什么?它可以不运行本地脚本吗?
我的最终目标:将用户条目从网页传递到脚本,以配置Raspberry Pi。
编辑:同样,一切都是本地的:没有服务器,没有互联网,没有HTTP。
如果答案是“不,你不能在没有服务器的情况下做到这一点”,这就是我需要听到的全部内容,我将会看到使用端口80来实现我想要的目标。
答案 0 :(得分:0)
Python(响应HTTP请求)由Web服务器执行。
如果您从file://
网址抓取,则会收到错误或原始内容,具体取决于您的浏览器。
您可以在任何端口上运行任何可以调用Python脚本(使用Python或CGI变体)的HTTP服务器。