2011-12-30 8 views
10

나는 다음과 같은 코드가 원래 페이지에서 <div id='job-status'></div> 사이에 '안녕하세요 엄마'를 표시 할 기대하지만, 그렇지 않습니다 :내 jQuery.get() 콜백이 호출되지 않는 이유는 무엇입니까?

$(function() { 
    function show_status() { 
     $.get("<%= status_jobs_path -%>", 
       function(data) { 
        $('#job-status').html('hi mom'); 
       }, 'json'); 
    } 
    show_status(); 
}); 

경우 get() 함수가 트리거되고 : 나는에 도착 요청을 참조 내 서버와 200 OK 응답에 내 JSON 코드가 들어 있습니다. 그러나 function(data) { ... } 몸 안의 경고()는 결코 호출되지 않으며 페이지에 '안녕 엄마'도 표시되지 않습니다. 나는 아래의 코드를 제거하는 경우에는 :

$(function() { 
    function show_status() { 
     $('#job-status').html('hi mom'); 
    } 
    show_status(); 
}); 

... 다음은 <div id='job-status'></div> 내 디스플레이 '안녕 엄마'를한다.

IASISO (확실한 것은 확실합니다)하지만 무엇이 누락 되었습니까?

+0

firebug/chrome dev tools에서 성공한 결과를 보았습니까? –

+1

응답이 유효한 JSON입니까? 구문 분석이 실패하면 jQuery는 여전히'error' 콜백 (또는'$ .get'에 대한 ['deferred.fail'] (http://api.jquery.com/deferred.fail/))으로 리다이렉트합니다. –

+1

그래, 난 그 머리 글자 어를 잡는 걸 보지 못해. 귀하의 질문에 관해서, 반환되는 JSON 개체가 유효하고 올바르게 구조화되어 있는지 확인 하시겠습니까? 또한 동일한 도메인 요청입니까, 아니면 교차 도메인입니까? – Aaron

답변

11

내 생각에 잘못된 json 응답을 반환합니다. 이것을 컨트롤러 액션에 넣으십시오.

render :json => { :message => "Hi mom" }, :status => :ok 
+1

예 - 그게 전부였습니다. 방금 JSON이 요소 목록에서 후미 쉼표를 허용하지 않는다는 것을 알았고 (Ruby는 나를 망쳤습니다) jQuery.get()은 잘못 구성된 JSON에서 자동으로 실패합니다. 감사. –

관련 문제