2010-07-11 10 views
0

레일즈에서 jQuery getScript를 사용하여 대시 보드 페이지에서 AJAX 검색을로드합니다. 나는 그저 통화를 제대로하는 것 이외에도 (백그라운드에서) 전체 페이지를 다시로드한다는 점을 알아 차렸다.Rails AJAX 요청으로 전체 원본 페이지 호출

나는 이런 일이 일어나는 이유를 모릅니다.

모든 before_filters와 모든 인증 로직을 검사했지만 다른 jQuery ajax 함수 (get, getJSON 등)를 사용해 보았지만 아무것도 표시하지 않았습니다. 그것은 여전히 ​​페이지를 다시로드 중입니다. 또한, 두 경로가 다른 컨트롤러에도 있습니다!

어떤 일이 벌어지고 있는지 알 수 있습니까?

편집 :

결의 됨.

이전 함수를 설정하기 위해 $ .get() 함수 외에도 $ .ajax ({}) 함수를 사용하고있었습니다. $ .ajax에있는 뭔가가 호출을 트리거 했음에 틀림 없으므로 새 함수를 하나로 합쳐서 내 문제를 해결했습니다.

그러나이 과정에서 발견 된 xhr.request?는 자바 스크립트 호출을 감지하고 특정 동작이 자바 스크립트에 응답하지 못하도록하는 데 유용합니다.

+0

AJAX 호출에 응답하는 컨트롤러 동작을 표시하십시오. 또한 올바른 수락 헤더를 보내고 있는지 확인하고 있습니까? 예 :'text/xml','text/javascript' 또는'application/json'? –

+0

도 그 동안 간단한 response.xhr을 사용하고 있습니까? before_filter/대시 페이지 (다시 호출되는 페이지)에서 적어도 아무 것도 반환하지 않지만 이상하게 괴롭다. –

+0

해결 방법으로 답변을 게시해야하며 직접 답변하거나 수락 할 수 있습니다 질문, 그것은 같은 문제가 조금 더 빨리 미래 사람들을 도울 수 있습니다 :) –

답변

0

여분의 호출을 트리거 한 자바 스크립트이 JQuery와 :

$.getScript(correct_url, function({ 
     $.ajax({beforeSend: function(){}...)} 
     callback code 
)} 

당신은 그와 같은 getScript 속기 함수 내에서 아약스 바로 가기를 사용할 수 없습니다. 내부의 .ajax는 자체 호출을하고있었습니다. 그래서 저는 그것들을 하나의 .ajax 함수로 결합했습니다.

$.ajax({ 
    url: correct_url, 
    type: 'get', 
    dataType: 'script', 
    beforeSend: function(){ 

     }), 
     success: function(){ 
      <callback code> 
     } 
}) 
관련 문제