繁体   English   中英

使用XMLHttpRequest的AJAX请求返回本地Python文件的内容,而不是执行它

[英]AJAX request using XMLHttpRequest returns content of local Python file instead of executing it

网页和Python脚本在Raspberry Pi中都是本地的(没有Internet连接)。

从命令行调用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。

编辑:同样,一切都是本地的:没有服务器,没有Internet,没有HTTP。

如果答案是“不,没有服务器,您将无法做到”,这就是我所需要听到的,我将考虑使用端口80来实现我想要的功能。

Python(响应HTTP请求)由Web服务器执行。

如果从file:// URL获取,则将显示错误或原始内容,具体取决于您的浏览器。

您可以在任何端口上运行可以调用Python脚本(使用Python或CGI变体)的任何HTTP服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM