Javascript 从php页面调用打开可见窗口的python脚本
我有这样的情况: 1) 一个非常基本的python脚本,它执行以下操作:Javascript 从php页面调用打开可见窗口的python脚本,javascript,php,python,Javascript,Php,Python,我有这样的情况: 1) 一个非常基本的python脚本,它执行以下操作: import os def main(): p = os.popen('gedit &') if __name__ == "__main__": main() <script type="text/javascript"> function test() { $.ajax({ type: "POST", url: "http://loc
import os
def main():
p = os.popen('gedit &')
if __name__ == "__main__":
main()
<script type="text/javascript">
function test() {
$.ajax({
type: "POST",
url: "http://localhost/CodeIgniter/application/temp/Test.py",
success: function(response){
alert('ok');
},
error:function(response) {
alert("fail");
}
});
}
</script>
如果通过命令行运行,显然会打开一个gedit可见窗口
2) 我有一个php页面,通过ajax请求调用此脚本,类似于:
import os
def main():
p = os.popen('gedit &')
if __name__ == "__main__":
main()
<script type="text/javascript">
function test() {
$.ajax({
type: "POST",
url: "http://localhost/CodeIgniter/application/temp/Test.py",
success: function(response){
alert('ok');
},
error:function(response) {
alert("fail");
}
});
}
</script>
功能测试(){
$.ajax({
类型:“POST”,
url:“http://localhost/CodeIgniter/application/temp/Test.py",
成功:功能(响应){
警报(“正常”);
},
错误:函数(响应){
警报(“失败”);
}
});
}
当调用test()函数时(例如按下按钮…),我看到警报ok,但实际上没有打开任何窗口。
查看流程列表,我还发现“gedit”流程不存在
其他提示:我总是能够运行其他python脚本,并获取它们的json响应(并处理它们),但是如果脚本打开某个窗口,我就看不到这个窗口
有人能帮我吗?
提前感谢您可能需要在Web服务器进程和本地计算机之间设置一个X通道(?)。这并不容易。您必须设置一些环境变量。(export DISPLAY=:0)必须启用给定进程以连接到Xwindow服务器。(搜索xhost,xauth)谢谢你的建议。有没有一种快速的方法来启用server-x,让所有用户检查是否存在权限问题?我不知道。如果您从X环境启动Web服务器,它可能会继承所需的权限。但我认为这是一个非常小的机会…最后我用你的第一个建议解决了问题…我只需要做:导出显示=:0