2012-04-12 52 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文件一次。