2012-04-12 51 views
1

希望有一些可以帮助!, 当调试一个PhoneGap应用程序连接到它的WCF服务似乎发布两次。Phonegap MobileJQuery AJAX帖子调试时两次

当应用程序正常运行时没有断点等,它一切正常,我只收到1. 在我看来,如果几秒钟后没有从服务器返回响应,ajax会自己重新发布。

我需要确认这扔wireshark,但只是想知道是否有其他人之前来过这个。

$.ajax({ 
       type: "POST", 
       url: ServicePATH , 
       data: JSON.stringify({ objs: arrayobj, parm2: var2, parm3: var3, parm4: 1 }), 
       contentType: "application/json", 
       dataType: "json", 
       success: function (data, textStatus, jqXHR) { 
        CallonSuccess(data); 
       }, 
       error: function (XMLHttpRequest, textStatus, errorThrown) { 
        console.log('error ' + textStatus); 
        console.log('XMLHttpRequest ' + XMLHttpRequest); 
        var str = ''; 
        for (prop in XMLHttpRequest) { 
         str += "prop " + prop + " value :" + XMLHttpRequest[prop] + "\n"; //Concate prop and its value from object 
        } 
        console.log(str); 
        console.log('errorThrown ' + errorThrown); 
        console.log('passing ' + JSON.stringify({ objs: arrayobj, parm2: var2, parm3: var3, parm4: 1 })); 
       } 
      }).done(function() { console.log('Finished ajax'); }); 

感谢LMAC

+0

'function CallonSuccess()'里面写的是什么? – 2012-04-12 10:37:36

+0

它是一个for循环,抛出从服务器返回的所有数据,如果有的话? – lmac34 2012-04-12 14:32:30

回答

2

也许没有解决(见下面的更新)为您但是这里相同的行为。

没有jQuery Mobile框架一切工作正常,与框架嵌入它取我的JSON文件第二次。在Chrome的控制台中,您可以在Network:GET status 200和GET status 304(未修改)下看到它。

我不得不放弃了jQuery Mobile的选项,我肯定会。但也有兴趣知道那里发生了什么。我已经在$(document).ready(function(){})中创建了xmlhttprequest,并且在$(document).ready(function(){})中创建了xmlhttprequest对象。看起来好像jQuery和jQuery Mobile都对此做出了反应。

如果我将脚本放在网站的末尾,并使我的xmlhttprequest在ready-method之外,它只取回我的json文件一次。