2012-02-20 3 views
0

나는 매우 이상한 상황을 겪고 있습니다. jQuery 간단한 문자열을 보내고 그것을 인쇄하는 레일 응용 프로그램이 있습니다.jQuery가 Rails 3 앱에서 데이터를 수신하지 못합니다.

jQuery를 :

jQuery(document).ready(function() { 
    jQuery('.bid a').livequery('click', function() { 
     obj = jQuery(this); 
     jQuery.post(obj.attr('href'), function(data) { 
      alert(data) 
     }); 
     return false; 
    }); 
    }) 

레일 컨트롤러 : 여기 내 코드입니다처럼

def send_message 
    respond_to do |format| 
     format.js do 
      @res_str = "nobids" 
      render :json => @res_str 
     end 
    end 
end 

, 그것은 확인을 작동, 그것은 문자열 "nobids"와 경고를 보여줍니다. 그러나 다른 문자열을 보내려는 경우 "nobidss"라고 말하면 실패합니다! 그것은 전혀 이해가되지 않습니다!

어떤 일이 벌어 질 수 있습니까?

+0

크롬 개발자 도구의 네트워크 콘솔에서 코드 200을 사용하여 요청이 성공했음을 알 수 있습니다. 응답은 예상대로입니다. 어쨌든 성공 후 함수를 호출하지 않습니다. 모든 것이 동일한 서버에 있으므로 "동일 원본 정책"을 무시할 수 있습니다 (문자열이 "nobids"인 경우 어떻게 성공할 수 있습니까?). – apeniche

답변

0

신참 실수하고있었습니다!

렌더링 할 경우 : json 응답 메시지를 json으로 변환해야합니다 (예 : @ response.to_json).

또한 html에서 href는 .json으로 끝나야하며 컨트롤러에서는 format.json에도 응답해야합니다.

왜 "nobids"문자열로 성공했는지 알 수 없습니다.

현재 작동 중임

관련 문제