我正在尝试使用perl脚本在浏览器中打印XML文件.当我尝试在浏览器中运行脚本时,我遇到以下错误.
Server error!
The server encountered an internal error and was unable to complete your request.
Error message:
Premature end of script headers: get_data.pl
If you think this is a server error, please contact the webmaster.
Error 500
localhost
01/15/10 14:29:28
Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1
Run Code Online (Sandbox Code Playgroud)
这是我的脚本.我也使用语法检查器检查了语法.我的perl配置没问题,因为其他简单的perl脚本工作正常.我认为问题在于"使用CGI"; 引导我..
#!/usr/local/bin/perl -w
use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
my $r = new CGI();
my $id = $r->param('id');
if(!defined($id))
{
print "Content-type: text/html\n\nMissing parameter: id\n";
exit 1;
}
if($id eq '7007')
{
print "Content-Type: text/xml\n\n";
open INPUT, "get_data.xml";
while(<INPUT>) {
print $_; }
close INPUT;
}
Run Code Online (Sandbox Code Playgroud)
我的天啊!!我只是命名了文件,然后试了......工作!!!! 真正的问题是什么?
与500 Internal Server Error相关的第一件事是检查Web服务器的错误日志中是否有实际的错误消息.它可能与Perl相关也可能不相关 - 一个常见的情况是服务器未设置为从您要求的位置执行CGI程序.
编辑:我刚刚在这里尝试过,Perl工作正常.但是,如果指定了7007以外的ID,则会得到500结果,因为脚本完成并退出而不发送HTTP标头(或其他任何内容).您始终需要发送HTTP标头,否则Web服务器将报告"脚本标头的过早结束",因为它在看到标头结束之前停止接收数据.
| 归档时间: |
|
| 查看次数: |
3379 次 |
| 最近记录: |