繁体   English   中英

如何通过客户端javascript函数触发服务器端程序(shell脚本)的执行?

[英]How to trigger execution of a server-side program (shell script) via a client-side javascript function?

我想从Web浏览器中运行的JavaScript代码触发服务器端脚本(.sh文件)的执行。

我搜索了谷歌,没有找到我认为适合我的代码。

您需要首先使用运行.sh文件的服务器端语言(如PHP,Python,RoR,PERL,ASP.NET或JSP)创建文件。 然后你必须使用Ajax来请求该页面。

在PHP中,类似于:

<?= shell_exec('sh /home/user/public_html/scripts/script.sh'); ?>

然后,对于JS,类似于:

<script src="//code.jquery.com/jquery-1.8.0.min.js"></script>
<script>
var runShellScript = function () {
    $.get('/scripts/script.php', function () {
        alert('Shell script done!');
    });
};

// Some stuff
runShellScript();
</script>

如果你不想使用jQuery或Ajax,你可能会使用JSONP。

我相信您无法直接使用客户端JavaScript执行此操作。 但是,您可以调用url请求,让服务器端语言(PHP,Java,Ruby ......几乎所有语言)完成任务。 并且一定要考虑安全问题。

确保.sh文件以:

#!/bin/sh
echo "Content-type: text/html"
echo ""

并且.htaccess文件设置为执行.sh文件:

Options +ExecCGI
AddHandler cgi-script sh

然后,您只需使用XMLHttpRequest从URL中调用该文件即可。 http://en.wikipedia.org/wiki/XMLHttpRequest ,甚至可能让你的脚本返回一些json对象。

我不知道Javascript是否特别打开.sh文件,但您可以使用filereader API来打开文件。

暂无
暂无

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

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