Php 服务器数据未从AJAX请求在PhoneGap框架上传播

Php 服务器数据未从AJAX请求在PhoneGap框架上传播,php,jquery,ajax,cordova,Php,Jquery,Ajax,Cordova,我已经使用这个酷炫的PhoneGap框架在android上构建了一个测试应用程序,但问题是AJAX请求可以使用jQuery AJAX从远程服务器获取数据,但一旦完成一个请求,数据似乎会粘住,当我更改来自服务器的响应时,更改不会反映在新请求上。以下是应用程序本身中的AJAX请求: $.getJSON('http://example.com/test1.php', function(data){ alert(data.rec); }); 以下是远程服务器上的PHP代码: header('C

我已经使用这个酷炫的PhoneGap框架在android上构建了一个测试应用程序,但问题是AJAX请求可以使用jQuery AJAX从远程服务器获取数据,但一旦完成一个请求,数据似乎会粘住,当我更改来自服务器的响应时,更改不会反映在新请求上。以下是应用程序本身中的AJAX请求:

$.getJSON('http://example.com/test1.php', function(data){
    alert(data.rec);
});
以下是远程服务器上的PHP代码:

header('Content-type: application/json');

$arr = array("resp"=>"response has changed");
echo json_encode($arr);
我的问题是,为什么?为什么更改不会从应用程序中反映出来?

也许WebKit(运行Phonegap应用程序的HTML5浏览器)正在缓存服务器响应。 为了避免这种行为,请在web服务/PHP脚本的开头添加以下内容:

header("Expires: Tue, 01 Jul 2001 06:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

为了使jQuery AJAX不缓存速记AJAX请求(如
$.getJSON()
)上的服务器响应,必须设置一个全局设置,告知后续AJAX请求不缓存服务器响应。您可以使用
$.ajaxSetup()
执行此操作。像这样做

$.ajaxSetup({
    cache: false
});
为了进一步防止缓存服务器响应,请使用Tincho Revert在其响应中发布的标题,如下所示:

header("Expires: Tue, 01 Jul 2001 06:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

不走运。但这是个好建议。我相信这将有助于进一步发展。