2015-01-05 2 views
1

내 PhoneGap 앱은 jQuery 모바일을 기반으로하며 현재 Android에서 테스트 중입니다. jqm의 교차 도메인 매개 변수가 설정되고 phonegap "access"-origins에 대해 와일드 카드를 사용합니다. 응용 프로그램은 일부 JSON 통신을 위해 AJAX를 사용합니다. 이제는 모든 아약스 GET이 문제없이 작동하지만 POST의 약 40 %가 내 서버에 도달하지 않습니다 (즉, 헤더조차도 로그에 해당 게시물의 흔적이 표시되지 않음). 모든 게시물은 id와 약간의 짧은 값과 같은 최소한의 json-load를 사용하여 정확히 동일한 주소로의 매우 기본적인 아약스 호출입니다. Chrome 기기를 사용하여 게시물의 일관성을 확인할 수 있지만 게시물의 약 40 %는 상태를 '대기 중'으로 유지하고 결국 시간 초과됩니다.PhoneGap : 일부 AJAX POST는 전송되지 않습니다

캐싱에 대한 내용을 읽었지만 이후 데이터는 항상 고유하지만 서버 응답에 nocache-headers를 추가했습니다. 게시물은 절대 캐시해서는 안되지만 어쨌든 도움이되지는 않습니다.

베어 jqm-app는 브라우저에서 정상적으로 작동합니다. phonegap에 포함되면 일부 게시물이 실패합니다. 아무도 단서가 있습니까? 당신의 jQuery.ajax 이러한 옵션을 추가

+0

여기에 코드를 표시하십시오. –

+0

@Dato ', 상당히 큰 프로젝트입니다. jquery ajax 함수에 대해 궁금한 점이 있다면 그것은 모두 같은 기능, 작동하는 호출 및 작동하지 않는 호출입니다. 그것은 방법으로 게시, 정적 URL 및 데이터로 길이 2의 작은 개체로 설정, 아무 것도 복잡합니다. – Mike

답변

0

좋아 고유 매개 변수을 우회 브라우저 측 캐싱을받는 것을 보장 호출 짧은 간격 (예 : 2 초)으로 post와 get 모두에 대해 ajax 요청을 보내는 기능 만 가진 두 번째 테스트 프로젝트를 설정했다. 밖으로 나가면 시간이 초과되고 몇 번의 반복이 끝나면 모든 것이 시간 초과됩니다.

최근 개발 도중 Chrome 충돌이 발생하여 잘 정리 된 로깅을하도록 서버를 설정했습니다. 이번에 Eclipse에서 앱을 시작하지는 않았지만 전화 연결을 끊고 전화로 직접 시작했습니다. 추측 무엇 : 다 잘 작동, 모든 아약스 요청은 서버에 도착.

Chrome DevTools 장치 검사없이 이미 테스트했지만 전화가 USB에 연결되어 있으면 도움이되지 않았습니다. 하지만 크롬이 꽤 자주 부서지면서 PC에 연결되어있는 동안 Chrome과 관련이 있다고 의심하게 만듭니다.

업데이트 : 더 큰 요청을 보낼 때 문제가 발생했습니다 (예 : base64의 이미지). 이제는 내 서버에서 헤더 "연결 : 닫기"를 설정하고 Chrome DevTools 검사를 통해 Chrome의 충돌을 제외하고 상황이 다시 원활하게 보입니다.

0

봅니다,

dataType: 'jsonp', 
cache: false 

첫 번째 크로스 도메인 게시물을 허용하고 두 번째는 각 요청

+0

감사합니다. 그러나 이것은 jsonp 메커니즘으로 전환하고 현재의 ajax 통신을 폐기해야합니다. 나는 현재 설치를 고치는 해결책을 찾는 것을 선호 할 것이다. – Mike

+0

캐시를 시도 했습니까? false 옵션? – unobf

+0

예, 불행히도 성공하지 못했습니다. – Mike

관련 문제