这是客户端代码:
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代码是相似的,但为什么不做同样的事情?
如果您有关于如何调试此问题的任何提示,请转发。 谢谢,
答案 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");
这有帮助吗?