为什么我的jqGrid脚本适用于PHP但是使用Perl失败?

时间:2009-08-21 18:00:31

标签: php jquery perl

这是客户端代码:

jQuery(document).ready(function(){
  jQuery("#list").jqGrid({
    url:'example.php',
    datatype: 'xml',
    mtype: 'GET',
    colNames:['Inv No','Date', 'Amount','Tax','Total','Notes'],
    colModel :[ 
      {name:'invid', index:'invid', width:55}, 
      {name:'invdate', index:'invdate', width:90}, 
      {name:'amount', index:'amount', width:80, align:'right'}, 
      {name:'tax', index:'tax', width:80, align:'right'}, 
      {name:'total', index:'total', width:80, align:'right'}, 
      {name:'note', index:'note', width:150, sortable:false} ],
  });
});

这是example.php代码:

<?php 

header("Content-type: text/xml;charset=utf-8");
print "<?xml version='1.0' encoding='utf-8'?>";
print "<rows>";
print "<page>1</page>";
print "<total>1</total>";
print "<records>1</records>";

print "<row>";
print "<cell>0</cell>";
print "<cell>08-01-03</cell>";
print "<cell>2</cell>";
print "<cell>4</cell>";
print "<cell>12</cell>";
print "<cell><![CDATA[Aiutooooooooo]]></cell>";
print "</row>";
print "</rows>"; 
?>

直到现在一切都很好,但如果现在我尝试从我的perl cgi脚本中获取xml数据 它不起作用,并且不显示数据。

以下是perl代码:

#!/usr/bin/perl

use CGI;

print CGI->header("Content-type: text/xml;charset=utf-8");
print "<?xml version='1.0' encoding='utf-8'?>";
print "<rows>";
print "<page>1</page>";
print "<total>1</total>";
print "<records>1</records>";

print "<row>";
print "<cell>0</cell>";
print "<cell>08-01-03</cell>";
print "<cell>2</cell>";
print "<cell>4</cell>";
print "<cell>12</cell>";
print "<cell><![CDATA[Aiutooooooooo]]></cell>";
print "</row>";
print "</rows>"; 

在jqGrid代码中我放了url ='cgi-bin / example.pl',

你可以注意到perl和php代码是相似的,但为什么不做同样的事情?

如果您有关于如何调试此问题的任何提示,请转发。 谢谢,

1 个答案:

答案 0 :(得分:2)

一些建议:

#1:在你的jQuery代码中你有这个:

url:'example.php'

但是你会说你的Perl代码改为:

url = 'cgi-bin/example.pl'

是吗,那个人有一个cgi-bin/前缀而另一个没有?

#2 :如果您只是将浏览器指向Perl脚本的URL,会发生什么?它是否显示XML?我想知道你的Web服务器是否正确配置为运行PHP,但正确配置为运行Perl。

编辑 - #3:你使用Perl的CGI模块的方式对我来说很奇怪(虽然我不是Perl的人)。我认为这是更惯用的用法:

use CGI;
my $cgi = new CGI;
print $cgi->header("Content-type: text/xml;charset=utf-8");

这有帮助吗?