Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Perl CGI脚本不返回内容_Html_Perl_Apache_Cgi - Fatal编程技术网

Html Perl CGI脚本不返回内容

Html Perl CGI脚本不返回内容,html,perl,apache,cgi,Html,Perl,Apache,Cgi,今天我要写我的第一个CGI程序。所以我有一个HTML页面,一个JavaScript程序,当我在本地运行它们时,它们都可以正常工作。 因此,下一步是在Apache服务器上运行它(在MacOSX上本地运行),第一个示例是“Hello World”,它也可以正常工作 问题是当我试图显示“内容类型:text/html”时 我写的是: #!/usr/bin/perl -wT use strict ; use warnings ; use diagnostics ; use

今天我要写我的第一个CGI程序。所以我有一个HTML页面,一个JavaScript程序,当我在本地运行它们时,它们都可以正常工作。 因此,下一步是在Apache服务器上运行它(在MacOSX上本地运行),第一个示例是“Hello World”,它也可以正常工作

问题是当我试图显示“内容类型:text/html”时 我写的是:

#!/usr/bin/perl -wT

use     strict ;
use     warnings ;
use     diagnostics ;
use     CGI ;
use     CGI::Ajax ;

print "Content-type: text/html \n\n";


sub initialize_html 
{
    my  $html   =   <<HTML ;
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <style type="text/css">
        html    { height: 100% }
        body    { height: 100%; margin: 0px; padding: 0px }
        label   { font-size:9px; text-align:center; color:#222; text-shadow:0 0 5px #fff; font-family:Helvetica, Arial, sans-serif; }
      #map_canvas { height: 100% }
    </style>
    <title>Network Weathermap | hellas online</title>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript" src="js/network_weathermap.js"></script>
</head>
<body>
    <div id="map_canvas"></div>
</body>
</html>
HTML
    print $html . "\n" ;
}

#initialize_html() ;
sub parameterize_info_window
{
    return  "CGI \n" ;
}

my $cgi     =   new CGI() ;
my $ajax    =   new CGI::Ajax( describeInfoWindow   =>  \&parameterize_info_window) ;

print   $ajax->build_html($cgi, \&initialize_html) ;
$ajax->JSDEBUG( 1 ) ;
#/usr/bin/perl-wT
严格使用;
使用警告;
使用诊断;
使用CGI;
使用CGI::Ajax;
打印“内容类型:text/html\n\n”;
子html
{
my$html=build\u html($cgi,\&initialize\u html);
$ajax->JSDEBUG(1);
并返回:“没有head/html标记,无处插入。仍返回javascript”

我怎样才能克服这个问题?原因是什么


谢谢

您的
初始化\u html
子例程不会发回页面的html


print$html.\n“
需要更改为
return$html.\n”

您的
初始化\u html
子例程不会发回页面的html


print$html.\n“
需要更改为
return$html.\n”

我不太清楚您的核心问题,但其中一个问题是,当您收到将由CGI::Ajax处理的请求时,您不应该发送HTTP头(例如,内容类型)首先是你自己。当你
print$ajax->build\uhtml(…)
它会自动为您解决这一问题。通过先发送您自己的头,您将CGI::Ajax的头移动到响应体中,它们将无法正常工作。

我不太清楚您的核心问题,但其中一个问题是,当您收到将由CGI::Ajax处理的请求时,您不应该发送首先自己发送HTTP头(例如,内容类型)。当您
print$ajax->build_html(…)
时,它会自动为您处理这些问题。通过首先发送您自己的头,您将CGI::ajax的头移动到响应体中,它们将无法正常工作。

返回“no head/html”的内容-您的浏览器?控制台?您的日志文件?您提出了什么请求?您是在浏览器地址栏中点击url,还是在javascript中提出了实际的ajax请求?请说明,我想为perl+1:)嗨,thanx为兴趣,当我键入“”在我的浏览器地址栏中。javascript中没有实际的ajax请求,只有一个名为“DescribeInfo窗口”的函数,我希望调用函数“parameterize\u info\u window”。返回“no head/html”的是什么-您的浏览器?控制台?您的日志文件?您提出了什么请求?您是在浏览器地址栏中点击url,还是在javascript中提出了实际的ajax请求?请说明,我想为perl+1:)嗨,thanx为兴趣,当我键入“”在我的浏览器地址栏中,javascript中没有实际的ajax请求,只有一个名为“DescribeInfo窗口”的函数,我希望调用函数“parameterize\u info\u window”。