为什么jqgrid无法从joomla获取json数据?

时间:2013-03-03 16:48:47

标签: ajax json joomla jqgrid

我在joomla(版本2.5.9)中编写了使用jqgrid(版本4.4.4)的代码。这是我的代码我发现jqgrid无法显示来自joomla json_encode的数据。但是在joomla中没有可以。 如果jqgrid url:testjson.php没问题。

<?php
  header('Cache-Control: no-cache, must-revalidate');
  header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
  header("Content-Type: application/json;charset=utf-8");
 header('Content-Disposition,attachment;filename=”json.json”');
  $response=new stdClass();
  $response->page = 1; 
  $response->total = 1; 
  $response->records = 1; 
  $response->rows[0]['id']='1';
   $response->rows[0]['cell']=array("1","vlan");
  echo json_encode($response);
?

我得到json:{“page”:1,“total”:1,“records”:1,“rows”:[{“id”:“1”,“cell”:[“1”,“ vlan“]}]},和jqgrid工作正常。

当jqgrid url:index.php?option = com_sysconfig&amp; view = vlan&amp; task = ajaxvlane.getvlanlist&amp; format = raw

在子控制器中,在函数getvlanlist中,这个代码是打击:

<?php
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header("Content-Type: application/json;charset=utf-8");
header('Content-Disposition,attachment;filename=”json.json”');
$response=new stdClass();
$response->page = 1; 
$response->total = 1; 
$response->records = 1; 
$response->rows[0]['id']='1';
$response->rows[0]['cell']=array("1","vlan");
echo json_encode($response);
JFactory::getApplication()->close();
?>

通过萤火虫,我可以看到json:{“page”:1,“total”:1,“records”:1,“rows”:[{“id”:“1”,“cell”:[“ 1“,”vlan“]}]}与testjson.php结果相同。

但jqgrid无法显示任何数据。

什么错误导致问题?谢谢。

顺便说一句,如果我使用joomla创建xml数据,jqgrid工作正常。

1 个答案:

答案 0 :(得分:0)

我得到答案:因为代码编辑器是UTF8 BOM charaset。如果没有使用BOM uft-8,那么它工作正常。