Почему мой скрипт jqGrid работает нормально с PHP, но не работает с Perl? - PullRequest
0 голосов
/ 21 августа 2009

Вот код стороны клиента:

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>"; 
?>

До сих пор все в порядке, но если сейчас я пытаюсь получить данные XML из моего сценария Perl CGI это не будет работать, и данные не отображаются.

Вот код 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 Ответ

2 голосов
/ 21 августа 2009

Пара предложений:

# 1: В вашем коде jQuery у вас есть это:

url:'example.php'

но затем вы говорите, что для вашего кода Perl вы меняете его на:

url = 'cgi-bin/example.pl'

Это верно, что у одного префикс cgi-bin/, а у другого нет?

# 2 : Что произойдет, если вы просто нацелите свой браузер на URL своего скрипта Perl? Это показывает XML? Что мне интересно, так это то, что ваш веб-сервер правильно настроен для работы с PHP, но не правильно настроен для запуска Perl.

Edit - # 3: То, как вы используете модуль CGI в Perl, выглядит странно для меня (хотя я не Perl-парень). Я думаю, что это более идиоматическое использование:

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

Это помогает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...