웹 페이지와 Python 스크립트는 모두 Raspberry Pi (인터넷에 연결되어 있지 않음)에 로컬입니다.XMLHttpRequest를 사용하는 AJAX 요청은 로컬 Python 파일의 내용을 실행하는 대신 반환합니다.
명령 줄에서 호출 할 때 Python 스크립트가 잘 실행됩니다. 웹 페이지에서
자바 스크립트는 파이썬 스크립트를 호출하는 AJAX를 사용
나는 또한 같은 결과를 "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("POST", "myscript.py", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send('test');
:
스크립트가 실행되지 않습니다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을 사용하여 원하는 것을 얻을 수 있습니다.
AJAX는 HTTP 요청 만 보냅니다. 원하는 방식으로 요청을 처리하도록 서버를 구성해야합니다. – SLaks
이렇게 할 수 있습니다. 하지만 http를 통해 서버에서 임의의 코드를 실행할 수는 없습니다. 서버에서 실행중인 웹 서버 (이 경우 raspberry-pi)가 필요하고 특정 끝점 (URL)을 설정해야합니다. 이것에 대한 일반적인 선택은 [flask] (http://flask.pocoo.org/)라고하는 python 웹 프레임 워크를 사용하는 것입니다. rasberry pi에 플라스크를 사용하는 방법에 대한 가이드와 자습서가 많이 있습니다. 그냥 구글. –
@SLaks "서버를 구성해야합니다." 서버가 없습니다. 내가 말했듯이 모든 것은 지역적이며, 인터넷도없고, 서버도 없습니다. –