AJAX调用和phonegap的问题

时间:2012-03-23 17:17:28

标签: ios ajax web-applications cordova ios-simulator

我正在使用javascript开发一个webapp,然后使用PhoneGap使其成为“本机”。在这个应用程序中,我需要导出为PDF,为此我通过AJAX调用使用PHP脚本。在这个PHP调用中,我发送了大量信息,包括html中的一个巨大的表和两个代表图表的SVG字符串。

这是我在javascript中的AJAX调用:

  jQuery.ajax(
    {
      type:'POST',
      url: 'http://xxx.xxx.xxx.xxx/php/pdfexport.php?callback=?',
      data:
      {
        dataHeader: JSON.stringify( tableHeaderEl ), //First table (Small)
        dataBody: JSON.stringify( tableBodyEl ), // Second table (Large)
        graphBar : JSON.stringify( svgBar ), // First chart (Large SVG)
        graphPie : JSON.stringify( svgPie ) // Second chart (Large SVG)
      },
      dataType: "json",
      success :
        function( result )
        {
          alert( 'Ok' );
        }
    }
  ).error(
    function( a, b, c )
    {
      alert( 'Error exporting PDF!' );
    }
  );

在PHP中,我使用以下代码

转储日志文件中收到的数据
<?php
  $log = fopen( 'temp\\log.txt', 'a' );  
  ob_start();
  var_dump ($_REQUEST);
  $data = ob_get_clean();
  fwrite($log, $data);
  fclose($log);
  $result = array
  (
    "success" => true,
  );
  echo $_REQUEST['callback'] . "(" . json_encode($result) . ")";
?>

随着应用程序直接在Safari中运行,我看到日志中发送了所有信息,但是从使用PhoneGap创建的应用程序中,如果仅发送第一个表我看到信息被转储,但是如果我发送所有信息4串,然后没有任何反应。似乎也没有生成错误,因为未调用错误函数。 我已经找到了对有这样一个问题的人做出的回应,但找不到任何东西。

有没有人遇到过这样的问题?

我正在使用xcode 4,PhoneGap 1.5和jQuery 1.7.1。

提前致谢

1 个答案:

答案 0 :(得分:0)

试试这个:

jQuery.ajax(
{
  type:'POST',
  url: 'http://xxx.xxx.xxx.xxx/php/pdfexport.php?callback=?',      
  data: JSON.stringify({ dataHeader: tableHeaderEl , dataBody:tableBodyEl , graphBar:svgBar ,graphPie : svgPie }),
  dataType: "json",
  success :
    function( result )
    {
      alert( 'Ok' );
    }
}
).error(
function( a, b, c )
{
  alert( 'Error exporting PDF!' );
}
);