Javascript 在Phonegap中调用AJAX REST服务期间未正确检索值

Javascript 在Phonegap中调用AJAX REST服务期间未正确检索值,javascript,ajax,jquery-mobile,cordova,Javascript,Ajax,Jquery Mobile,Cordova,下面是我的代码 <script type="text/javascript"> var Tag1, Tag2, Tag3, Tag4; var Data1,Data2,Data3,Data4; function onDeviceReady() { $.ajax({ type : 'GET', url : "http://192.168.1.150:9051/something.xml", data : {

下面是我的代码

<script type="text/javascript">
var Tag1, Tag2, Tag3, Tag4;
var Data1,Data2,Data3,Data4;

function onDeviceReady() {

    $.ajax({
        type : 'GET',
        url : "http://192.168.1.150:9051/something.xml",
        data : {
            key : "value"
        },
        dataType : "xml",
        success : function(xml) {

            Tag1 = $(xml).find('Tag').eq(0).text();
            Tag2 = $(xml).find('Tag').eq(1).text();
            Tag3 = $(xml).find('Tag').eq(2).text();
            Tag4 = $(xml).find('Tag').eq(3).text();

            Data1 = $(xml).find('Data').eq(0).text();
            Data2 = $(xml).find('Data').eq(1).text();
            Data3 = $(xml).find('Data').eq(2).text();
            Data4 = $(xml).find('Data').eq(3).text();

            var oHead1 = document.getElementsByTagName('HEAD').item(0);
            var paramScript = document.createElement("script");
            paramScript.type = "text/javascript";

            paramScript.setAttribute('Tag1', Tag1);
            paramScript.setAttribute('Tag2', Tag2);
            paramScript.setAttribute('Tag3', Tag3);
            paramScript.setAttribute('Tag4', Tag4);

            paramScript.setAttribute('Data1', Data1);
            paramScript.setAttribute('Data2', Data2);
            paramScript.setAttribute('Data3', Data3);
            paramScript.setAttribute('Data4', Data4);

            oHead1.appendChild(paramScript);

            var oHead = document.getElementsByTagName('HEAD').item(0);
            var oScript = document.createElement("script");
            oScript.type = "text/javascript";
            oScript.src = "something.js";
            oHead.appendChild(oScript);
        },

        error : function(xhr) {
            alert("Error while loading the Mock Service !!!");
        }
    });

}

document.addEventListener("deviceready", onDeviceReady, false);
</script>

变量Tag1、Tag2、Tag3、Tag4;
变量Data1、Data2、Data3、Data4;
函数ondevicerady(){
$.ajax({
键入:“GET”,
url:“http://192.168.1.150:9051/something.xml",
数据:{
关键词:“价值”
},
数据类型:“xml”,
成功:函数(xml){
Tag1=$(xml.find('Tag').eq(0.text();
Tag2=$(xml.find('Tag').eq(1.text();
Tag3=$(xml.find('Tag').eq(2.text();
Tag4=$(xml.find('Tag').eq(3.text();
Data1=$(xml.find('Data').eq(0.text();
Data2=$(xml).find('Data').eq(1).text();
Data3=$(xml).find('Data').eq(2).text();
Data4=$(xml.find('Data').eq(3.text();
var oHead1=document.getElementsByTagName('HEAD')。项(0);
var paramScript=document.createElement(“脚本”);
paramScript.type=“text/javascript”;
paramScript.setAttribute('Tag1',Tag1);
paramScript.setAttribute('Tag2',Tag2);
paramScript.setAttribute('Tag3',Tag3);
paramScript.setAttribute('Tag4',Tag4);
paramScript.setAttribute('Data1',Data1);
paramScript.setAttribute('Data2',Data2);
paramScript.setAttribute('Data3',Data3);
paramScript.setAttribute('Data4',Data4);
oHead1.appendChild(paramScript);
var oHead=document.getElementsByTagName('HEAD')。项(0);
var oScript=document.createElement(“脚本”);
oScript.type=“text/javascript”;
oScript.src=“something.js”;
oHead.appendChild(oScript);
},
错误:函数(xhr){
警报(“加载模拟服务时出错!!!”;
}
});
}
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);

现在假设这是在one.html中调用的,并且它正确地显示了值。但是假设我转到second.html,然后手动更改something.xml中的服务器值,然后返回one.html,那么这些值不会被更改。它会显示旧值。这些变化不受影响。我做错了什么?

可能是因为缓存问题。您可以尝试以下方法:

url : "http://192.168.1.150:9051/something.xml" + "?time=" + Date.now(),

尝试避免它。

可能是由于缓存问题。您可以尝试类似于
url:http://192.168.1.150:9051/something.xml“+”?time=“+Date.now(),
尝试避免它。Hi@Prusse it worked:D。。使用你给我的补丁或者其他方法可以吗?无论如何,把它作为答案,这样我就可以标记它了。