2012-03-19 4 views
3

솔루션을 찾고 있었지만 계속 실패했습니다. 다음 코드는 JQuery 1.4.4, JQuery Mobile 1.0a2 및 PhoneGap 0.9에서 잘 작동합니다. 그러나 JQuery 1.7.1, JQuery Mobile 1.1.0 및 PhoneGap 1.5로 전송했을 때; 오류가 계속 발생합니다. Fiddler를 통해 http 호출을 추적하고 URL에 호출하는 아약스를 알았지 만 성공 대신 오류가 발생하는 이유는 무엇입니까? 도와주세요!

$.ajax({ 
type: "GET", 
cache: false, 
url: updateServer+'update.xml', 
dataType: "xml", 
error: function(xhr, settings, exception){ 
    alert('The update server could not be contacted.'); 
}, 
success: function(xml){ 
    // success code  
    } 
}); 
+0

어떤 플랫폼입니까? 브라우저에서 앱을 사용해도 작동합니까? – ghostCoder

+0

안녕하세요, 브라우저와 에뮬레이터에서 작동하지 않습니다. 브라우저의 경우 Firefox, IE 및 Chrome에서 테스트를 마쳤습니다. 그들은 작동하지 않습니다 : ( – yi2ng2

+0

다음 phonegap 문제가 .. 정상적인 브라우저에서 먼저 작동하도록하십시오. 이것을보십시오 http://www.freelancephp.net/simpleajax-small-ajax-javascript-object/ 대신 jquery ajax – ghostCoder

답변

3

에뮬레이터 자체에서 웹 서비스에 액세스하고 응용 프로그램이 인터넷 연결에 액세스 할 수 있는지 확인하십시오.

에뮬레이터 내에서이 작업을 수행하려면 기본 브라우저를 열고 URL을 입력하십시오. 그것은 404 나 예외를주지 않습니다.

+0

안녕하세요 마틴, 예, 브라우저와 에뮬레이터에서 URL에 액세스 할 수 있습니다 .Ajax가 아직 작동하지 않는 이유는 무엇입니까? – yi2ng2

+0

은 네트워크/인터넷에 액세스 할 수있는 응용 프로그램입니까? –

+0

네, 포함 시켰습니다. 사실 JQuery Mobile 1.02a를 사용하는 JQuery 1.4.4에서는 JQuery를 사용하여 1.7.1의 JQuery와 함께 제공되는 코드 전체가 올바르게 실행됩니다. 모바일 1 .1.0, 예상대로 작동하지 않음 – yi2ng2

0

좋아, 문제는 실제로 URL 자체 인 것으로 파악됩니다. URL 주소는 액세스 가능하므로 유효하지만 동일한 도메인에 속하지 않습니다. 예를 들어 JQuery가 포함 된 html 파일은 http://www.yahoo.com/index.html에 있지만 전화하려고하는 URL은 http://www.google.com입니다.

브라우저는 보안 문제로 인해 한 도메인에서 호스팅되는 페이지에서 다른 도메인 (동일한 출처 정책)에서 호스팅되는 페이지로의 ajax 호출을 방지합니다. 내 솔루션은 여기 (JQuery와 사용) HTML은 다음과 같이 PHP 파일을 호출하는 동안 다른 도메인 관련 데이터를 검색 할 PHP 파일을 사용하는 것입니다

$.ajax({ 
type: "GET", 
cache: false, 
url: 'getcontent.xml', 
dataType: "xml", 
error: function(xhr, settings, exception){ 
    alert('The update server could not be contacted.'); 
}, 
success: function(xml){ 
    // success code  
    } 
}); 

도움이 주어진 모든 주셔서 감사합니다!

3

Phonegap 1.5에서이 문제가 발생했습니다. Phonegap 1.4.1로 다운 그레이드하면 문제가 해결되었습니다. 나는 결국 며칠 동안 좌절했고 문제를 이해할 수 없었다.

+2

예!의견을 주셔서 감사합니다, 나는 1.5에서 1.7로 업그레이드하여 내 문제를 해결했습니다. –

1

jQuery Mobile은 PhoneGap으로 구현하는 방법에 대한 문서 전체를 가지고 있습니다. 그것을 여기에서 조사해라.

http://jquerymobile.com/test/docs/pages/phonegap.html

당신은 크로스 도메인 아약스 통화가 가능하도록 권한을 설정해야합니다.

또한! 웹 앱에서 이식하는 경우 HTML 파일에서 코드를 변경해야합니다. 아마도 "../api/handler.php"또는 무엇인가를 요청했을 것입니다. PhoneGap에서 모든 호출을 절대적으로 사용해야합니다. "http://mydomain.com/api/handler.php"

+0

doc url이 http://jquerymobile.com/demos/1.0/docs/pages/phonegap.html로 변경된 것으로 보이며 http :// /view.jquerymobile.com/master/demos/faq/how-configure-phonegap-cordova.php –

관련 문제