2013-01-31 2 views
0

jQuery 모바일 웹 사이트의 javascript 파일에서 정보를 검색하려고합니다. Ajax는 기본적으로 활성화되어 있지만 xmlHttpRequest.send()를 시도하면 responseText는 json 구조가 아닌 페이지의 소스 코드입니다. initialize() 함수는 pageinit에서 실행되기 때문에 호출 할 때 검색중인 json이 있어야한다고 생각합니다. 또한 initialize()는 사이트의 모바일이 아닌 변형에서 잘 작동하므로 JQM이 아약스 요청을 처리하는 방법과 관련이 있다고 생각합니다. 도움을 주셔서 미리 감사드립니다. 당신이 (thusly 히와, jQuery를) jQuery를 모바일을 사용하고 있기 때문에jQuery Mobile ajax request

<!DOCTYPE html> 
<html> 
    <head> 
     var xmlHttpRequest; 
     var json; 

     <script type="text/javascript"> 
      function initialize() 
      { 
       xmlHttpRequest = (window.XMLHttpRequest) ? new XMLHttpRequest() : 
           new ActiveXObject("Msxml2.XMLHTTP"); 

       if (xmlHttpRequest == null) 
       return; 

       xmlHttpRequest.open("GET", "pick.js", false); 
       xmlHttpRequest.send(); 
       json = eval('('+ xmlHttpRequest.responseText +')'); 
      } 
     </script> 
     ...... 
    </head> 

    <body> 
     <div data-role="page" id="map-page"> 
      <script type="text/javascript"> 
       $('#map-page').live('pageinit',function(){ 
        initialize(); 
       }); 
      </script> 
      ..... 
     </div> 
    </body> 
</html> 
+0

: 상황 당신의 코드는 다음과 같을 것이다 들어

. – Pete

+0

분명히 밝혀야합니다. 스크립트를 동적으로 가져온 다음 페이지에서 바로 실행하려고합니다. –

+0

맞습니다. 자바 스크립트는 서버에서 생성되며 json을 포함합니다. 브라우저에서 처리하기 위해 검색하고 싶습니다. – petfreshman

답변

0

, 당신은 jQuery.ajax 사용을 고려해야합니다 - 당신을 위해 XHR 객체를 생성 같은 '독한'을 모두 처리합니다. 당신은 트래픽이 어떻게 생겼는지 볼 수 피들러를 사용하여 시도 할 수 있습니다

function initialize() { 

    $.get("pick.js", function(data, status, jqXHR) { 
     //when the call succeeds, do something with the 'data' param 
     console.log(data); 
    }, "script"); 
} 
+0

이전과 같은 결과가 발생합니다. 콜백 함수는 절대로 실행되지 않으므로 요청이 여전히 실패 함을 의미합니다. – petfreshman

+0

@petfreshman 요청이 '실패'하면 실제 요청이 200 이외의 것을 얻는다는 뜻입니다. 방화범이 끌 리거나 피들러가 있습니까? 요청이 발생했을 때 서버에서 귀하에게 알려주는 내용을 말할 수 있습니까? (방화범을 사용하거나 콘솔 또는 넷 패널을 열어 요청/응답을 들여다 본 경우) –

+0

흥미 롭습니다. 직접 URL로 가면 잘 동작합니다. ,하지만 애플 리케이션 내에서 다른 페이지에서 링크가 실패합니다. 나는 Firebug를 사용하고 있으며 상태는 '200 OK'라고 나와 있습니다. 다른 포럼에서이 효과를 보았지만 모든 게시물마다 다른 해결책이있는 것 같습니다. – petfreshman