Проблемы с вызовом AJAX и телефонной пробелой - PullRequest
0 голосов
/ 23 марта 2012

Я занимаюсь разработкой веб-приложения на javascript, а затем делаю его "родным" с помощью PhoneGap.В этом приложении мне нужно экспортировать в PDF, и для этого я использую сценарий PHP через вызов AJAX.В этом вызове PHP я отправляю большое количество информации, включая огромную таблицу в html и две строки SVG, каждая из которых представляет диаграмму.

Это мой вызов AJAX в javascript:

  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 голосов
/ 23 марта 2012

Попробуйте это:

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!' );
}
);
...