2012-12-06 2 views
6

여기에 로컬 서버에서 호스팅되는 JSON을 얻으려고하는데 어떤 이유로 작동하지 않습니다. 브라우저에서 내 URL을 누르면 Json이 올바르게 반환되고 다른 URL을 사용하면 일부 데이터가 표시됩니다.ajax 요청 오류를 디버깅하는 방법?

내 원래해서 getJSON 방법 :

해서 getJSON :

$.getJSON(url, 

        function(data) { 
         console.log('got something'); 
         alert(data);  

        }); 

지금 내가 잘못을 정확히보고 싶어요. Ajax 요청으로 다시 작성했고, 오류 콜백에서 jqxhr은 이해할 수없는 많은 것을 제공합니다. 이 오류에 대한 자세한 정보를 얻을 수 있습니까?

TextStatus 값이 "error"

errorThrownnull

$.ajax({ 
        url: url, 
        dataType: 'json', 
        success: function(data) { 
         console.log('got something'); 
         alert(data);  
         }, 
       error: function(jqxhr,textStatus,errorThrown) 
        { 
         console.log(jqxhr); 
          console.log(textStatus); 
          console.log(errorThrown);        

          for (key in jqxhr) 
           alert(key + ":" + jqxhr[key])                 
          for (key2 in textStatus) 
           alert(key + ":" + textStatus[key]) 
          for (key3 in errorThrown) 
           alert(key + ":" + errorThrown[key]) 

        //<--- All those logs/alerts, don't say anything helpful, how can I understand what error is going on? ----> 

       }}); 

마지막이다, json으로는 나는 돌아

[{"message": "login failed"}] 

를 얻기 위해 가정 그리고 난, 크롬 불을 지르고 사용할 수 없습니다 콘솔 또는 다른 dev 도구는 Phonegap!을 사용하여 개발 된 모바일 응용 프로그램이기 때문에!

+0

URL은 현재 페이지와 동일한 도메인, 하위 도메인 및 프로토콜에 있습니까? – devnull69

+0

firebug 또는 chrome의 개발자 도구를 사용하고 네트워크에서 xhr을 클릭하면 URL의 응답을 볼 수 있습니다 –

+0

Firebug/Fiddler/Chrome 개발자 도구의 네트워크 탭에서 응답 코드와 텍스트가 무엇인지 확인 했습니까? –

답변

6

나는 거 구경에게 대답에 내 의견을 넣어 오전에 모든 키를 인쇄 rm, 그 문제에 대한 해결책은 아니지만 jQuery Ajax로 다양한 반환 문제를 해결하는 좋은 방법이다.

이 경우 특정 데이터 형식을 요청할 때 dataType: 'json' 특정 데이터 형식을 요청하고 있습니다. 특정 dataType이 리턴되지 않으면 오류 함수로 전달됩니다.

오류 메시지가 문제를 설명하는 정보를 제공하지 않는다면보다 친숙한 데이터 유형을 요청하십시오. 이렇게하면 요청이 실제로 반환되는지 확인할 수 있습니다. 요청한 데이터 유형 이외의 데이터가 문제가되면 거기에서 해결할 수 있습니다.

html 또는 text과 같은 데이터 유형은 요청한 URL에서 반환 된 정확한 데이터를 제공하기 위해 매우 열려 있으며 거기에서 문제를 해결할 수 있습니다.

조금 도와주세요.

+0

그것은 실제로 내 문제를 해결했습니다! 고마워! – caiocpricci2

+0

다행스럽게도 :) – Kodemon

1

jqxhr - XrayWrapper
가 textStatus -. (예를 들면 성공, 에러)
errorThrown에서 https 응답 상태의 텍스트 표현을 나타냄 - XMLHttpRequest 객체

jqxhr.status - HTTP 응답 코드를 제공 같은 200, 404, 500 등등 ..

사용이 코드는 JSON 객체

var output = ''; 
for (property in object) { 
    output += property + ': ' + object[property]+'; '; 
} 
console.log(output); 
관련 문제