在不使用服务器的情况下在AJAX中执行Perl / CGI脚本

时间:2017-07-18 11:29:32

标签: ajax perl cgi

我有一个Perl和一个CGI文件,通过它我想从数据库中获取数据。我有一个UI,我试图使用AJAX调用,它将命中perl( .pl)或( .cgi)文件,并获得JSON中的响应。我通过运行命令提示符检查了perl / cgi文件,它工作正常。这就是我在command prompt中运行代码的方式:

D:\>PerlExecutables\strawberry_32\perl\bin\perl.exe C:\Users\UserXYZ\Desktop\PerlExamples\test.cgi

原因是我无法在我的机器上进行任何类型的安装,也不想通过ApacheIIS之类的服务器运行它。 怎么能实现这一目标?有没有办法通过传递perl.exe路径执行或任何其他替代方法使脚本在AJAX中工作?

谢谢!

1 个答案:

答案 0 :(得分:3)

执行此操作的一种方法是使用Plack::App::CGIBin。它允许您使用PSGI / Plack协议将CGI脚本作为应用程序挂载。

use Plack::App::CGIBin;
use Plack::Builder;

my $app = Plack::App::CGIBin->new(root => "/path/to/cgi-bin")->to_app;
builder {
    mount "/cgi-bin" => $app;
};

将其保存为myapp.psgi(或调用您的任何内容)并按以下方式运行:

$ plackup myapp.psgi

默认情况下,它将在localhost上的端口3000上打开服务器。您需要能够安装Perl模块。因为你有草莓Perl应该不是一个问题。在最坏的情况下,只需使用local :: lib。

您还需要能够打开一个端口进行收听。如果你不能,除了让管理员安装一个实际的全面Web服务器之外别无其他解决方案。

PSGI协议和Plack工具是一个简单易用的CGI替代品。它们使您可以非常灵活,同时可以轻松地持续运行大型应用程序。

相关问题