2012-03-13 2 views
0

JQUERY 모바일을 사용하여 모바일 애플리케이션을 개발하려고합니다. 데이터의 경우, 내 애플 리케이션은 JSON 객체를 반환하는 기존 서비스에 액세스해야한다.외부 JSON 데이터에 대한 Jquery 모바일 AJAX 요청이 실패합니다.

$.ajax({ 
      url: 'http://pruebanico.comze.com/prueba2.json',  
      dataType: 'text',  
      jsonp: 'jsoncallback', 
      timeout: 5000,  
      success: function(json, status){ 

      alert (json); 
      }); 

이 코드를 실행하면 정의되지 않은 오류가 표시됩니다. OK JSON 현명한

{"totalResultsCount":0,"geonames":[]} 

정의되지 않은 오류의 문제가 될 수 무엇

방화범에 반환 된 페이지의 결과에 대해 자세히 살펴 데,이 모든 것이 될 것입니다?

+0

항상 반환 된 XML을 DOM 또는 jQuery 객체로 취급하고'$ .children()'_et al_를 사용하여 찾고있는 노드를 찾으십시오. – Bojangles

+0

브라우저에 따라 DOM으로 취급하는 경우 '',' '및' '과 같은 태그를 제거합니다. 크로스 브라우저 방식은 간단하지 않습니다. – Alexander

+1

문제가 설명되어 있지 않으면 질문을 수정하십시오. 그것은 쓸모가 없다. – Alexander

답변

1

첫 번째 문제는 구문 오류가 발생했다는 것입니다. 열 때와 동일한 괄호/중괄호를 닫지 않았습니다. 그것은이 있어야한다 :

$.ajax({ 
    url: 'http://pruebanico.comze.com/prueba2.json', 
    dataType: 'text', 
    jsonp: 'jsoncallback', 
    timeout: 5000, 
    success: function(json, status) { 
     alert(json); 
    } 
});​ 

두 번째 문제는 서버가 크로스 원산지 예외가 발생하는 JSONP하지만 그냥 일반 JSON을 반환하지 않는 것 같다.

는 대신

jsoncallback({"totalResultsCount":0,"geonames":[]}) 

또는

서버에 CORS를 (출처 간 자원 공유) 구현하지만, 참고 현재 출시 뭔가를 반환하는 서버 코드를 수정해야 Opera와 Internet Explorer는 CORS의 표준 버전을 아직 지원하지 않습니다. (IE는 자체적으로 XDomainRequest 객체를 가지고 있지만 CORS 표준과는 다르다. 두 브라우저의 다음 릴리스는 표준 CORS 지원과 함께 제공 될 것이다.)

+1

고마워요. 참으로 CORS 문제입니다. – nicBBB

관련 문제