我正在使用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。
提前致谢
答案 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!' );
}
);