【问题标题】:Is there a way to implement AJAX in Perl without using the CGI::Ajax module?有没有办法在不使用 CGI::Ajax 模块的情况下在 Perl 中实现 AJAX?
【发布时间】:2017-03-16 02:02:36
【问题描述】:

我正在尝试在免费的 Web 托管服务器上使用 Perl 创建我的第一个具有 AJAX 设置的站点。主人有很多不足之处。服务器上安装了 Perl 模块,但没有安装 CGI::Ajax。我是 Perl 的新手。有没有一种合理的方法可以在不使用我提到的模块的情况下对简单的 AJAX 设置进行硬编码?会不会和XMLHttpRequest有关?

更新:是的,我正在阅读 CGI::Ajax 模块代码和 cmets。我不认为我可以从那里提取一些东西并将其放入脚本中,否则将调用该模块?但我必须首先了解整个可怕的模块......

更新:我正在寻找一种包含 CGI::Ajax 的方法,方法是将模块上传到与“使用”它的脚本相同的目录,并修改 @INC 路径或类似的东西.. .

【问题讨论】:

  • 总有一种方法可以在没有模块 Y 的情况下实现 X。不过听起来你可能不了解堆栈的其余部分
  • 你有 shell 访问权限,还是只有 FTP?如果你这样做了,你可以在本地从 CPAN 安装任何你想要的东西。
  • @simbabque,他们可以运行 CGI 脚本,所以他们有 shell 访问权限。
  • @simbabque,是的,除非您可以这样做,否则他们通常会给您ssh 访问权限。
  • 即使所有的德国主机都没有,那也只是沧海一粟。我坚持我所说的。

标签: ajax perl module


【解决方案1】:

在我编写 Web 应用程序的这些年里,我编写的 Ajax 调用超过了我应得的份额,而且我从未使用过 CGI::Ajax。事实上,直到现在我还从未听说过它。我现在浏览了文档,我真的看不出它给你带来了什么好处。

Ajax 交互有两个部分。客户端部分在浏览器中运行,因此几乎总是用 Javascript 编写。这些天来,jQuery 让它变得非常简单。我看不出 Perl 模块在这里有什么帮助。

服务器部分在 Web 服务器上运行。您所需要的只是一个接收 HTTP 请求并发送 HTTP 响应的应用程序。用 Perl 编写的 CGI 应用程序是一种明显的编写方式——但这些天我更有可能使用基于 PSGI 的东西。您可能希望您的应用程序以 JSON 格式返回数据并适当地设置 Content-type 标头,也许 CGI::Ajax 会对此有所帮助 - 但在任何其他 Web 框架中执行此操作并不繁琐。

所以,总结一下:

  1. 不,您不需要使用 CGI::Ajax 来编写 Ajax 调用。
  2. 完全可以将 Ajax 交互的服务器端编写为 Perl CGI 程序 - 但在 2017 年,有 plenty of better options

更新:因此,在这种情况下,您不需要安装额外的模块。但是,一般来说,如果您可以在需要时轻松安装模块,那么您的 Perl 开发生活会容易得多。因此,我非常建议您寻找一个允许您这样做的托管解决方案。

【讨论】:

  • 第三段的中间:“但现在我更有可能使用基于 CGI 的东西”。假设你是想说 PSGI 还是别的什么?
  • @MattJacob:是的。谢谢。现已修复。
  • 非常感谢您的回答。我现在将做一些关于使用 Perl 进行 Web 开发的急需的进一步阅读。我有点希望在问我这个非常愚蠢的问题之前我能阅读更多内容。
【解决方案2】:

AJAX 请求没有什么特别之处。它们就像任何其他 Web 请求一样。以下是一个示例 Web(包括 AJAX)请求处理程序:

#!/usr/bin/perl
use strict;
use warnings;
use CGI qw( );
my $cgi = CGI->new();
print $cgi->header('text/plain');
print "Hello, World!\n";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-29
    • 2017-01-02
    • 1970-01-01
    • 2011-12-26
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    相关资源
    最近更新 更多