2012-09-25 7 views
2

내 응용 프로그램은 phonegap 1.7.0 및 jquery 1.7.1을 android app에 번들로 사용합니다. 내 HTML 양식을 제출할 때 하나를 제외하고 성공적으로 실행되는 여러 getJson() 호출이 포함되어 있습니다.Ajax 요청이 서버로 전송되었지만 상태 코드 0을 반환합니다.

$('#proposalForm1').submit(function(event){ 
    var formInput = $(this).serialize(); 
    $('#loader').show(); 
    $.getJSON("http://xxx.xxx.xxx.xxx:8282/Service004/user/jsProposalPage1.action", formInput,function(data){ 
    $('#loader').hide(); 
    if(data.serviceErrorMsg == ""){ 
     window.location.replace("proposalDisplay.html"); 
    } 
    else{ 
     alert(data.serviceErrorMsg); 
    } 
}).error(function(xhr){ 
     $('#loader').hide(); 
     alert(xhr.status); 
     navigator.notification.alert(
      'Please try again later!', // message 
      doNothing,   // callback 
      'Server Unavailable',   // title 
      'Exit'     // buttonName 
      ); 
    }); 
    return false; 
}); 

가끔은 작동하지만 대부분 오류 코드 0을 반환합니다. 웹 서비스의 응답은 앱 서버에서 성공적으로 수신되지만 phonegap 앱은 staus code 0을보고합니다. 아무도 도와 줄 수 없습니까? 앱이 웹 작품을 사용하고 전화 격차를 사용하지 않는 블랙 베리 용 번들로 제공되는 경우에도 동일한 문제가 발생합니다. Android 2.3.3 및 Blackberry 9300 곡선에서 테스트되었습니다. 사전에

감사합니다,

+0

jQuery 1.7.1 및 Phonegap을 실행하는 동안 이전과 완전히 똑같은 문제가있었습니다. 서버의 응답이 충분히 빠르지 않을 때 발생하는 것으로 보입니다. 지연을 사용하여 복구했지만 jQuery 1.7.2를 사용하여 해결했습니다. –

답변

0

I 전체 $의 아약스() 호출을 $ .getJSON 호출을 전환하고 좀 더 뭔가에 시간 제한을 설정하는 것이 좋습니다 것입니다. 그것은 아마도 당신의 웹 서비스가 너무 오랜 시간이 걸려 회신을하기 때문일 것입니다.

이 방법으로 해결되지 않으면 응답 할 때까지 응답 할 때까지 기다려야하는 응용 프로그램 서버를 구성해야 할 수 있습니다. 상태 코드 0은 "응답이 비어 있음 (헤더가 반환되지 않음)을 의미합니다. 이는 연결이 수락되었다가 정상적으로 닫혔음을 나타냅니다 (TCP FIN)."

이 문제를 일으킬 수있는 많은 일들이있을 수 있지만 대부분 방화벽이 원인 일 수 있습니다 (응용 프로그램 서버가 다른 요청에 대해 작업했을 가능성이 적음).

+0

감사합니다. 전체 $ .ajax() 메소드를 구현했으며 해당 오류는 상태 코드가 504 인 것으로 나타 났으며 대부분 방화벽 문제를 나타냅니다. 다른 요청은 몇 초 이상 기다리지 않아도됩니다. 시스템 관리자에게 연락하여 문제를 해결할 수 있기를 바랍니다. – amitworkaholic

관련 문제