0
網頁和Python腳本都是在樹莓派(無互聯網連接)本地。AJAX請求返回Python的文件的內容,而不是執行它
從命令行調用時,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的功能嗎?它可以不運行本地腳本?
我的最終目標:從網頁的用戶條目傳遞給腳本,配置樹莓派。
編輯:再次,一切都是地方:沒有服務器,沒有互聯網,沒有HTTP。
如果答案是「不,你不能這樣做,沒有一個服務器」這就是我需要聽到,我會看看使用80端口,而不是達到我想要的。
AJAX只是發送HTTP請求。您需要將您的服務器配置爲以您想要的方式處理該請求。 – SLaks
可以這樣做。但是你不能通過http在服務器上執行任意代碼。您需要在您的服務器上運行一個Web服務器(在這種情況下爲raspberry-pi),並設置特定的終結點(urls)。一個常見的選擇是使用名爲[flask]的python web框架(http://flask.pocoo.org/)。有許多關於在rasberry pi上使用燒瓶的指南和教程。只是谷歌它。 –
@SLaks「您需要配置您的服務器」。沒有服務器。正如我所說,一切都是本地的,沒有互聯網,沒有服務器。 –