2011-08-16 2 views
1

인증을 확인하는 컨트롤러에 대한 ajax 호출이 있습니다. 인증이없는 경우 호출 요청을 xhr 요청인지 확인하는 signin 컨트롤러로 보냅니다. 그것이 있다면, page.redirect_to를 포함하는 rjs를 signin 경로에 렌더링하고 메인 윈도우는 signin 페이지로 리다이렉트됩니다. 이것은 Google 크롬에서 완벽하게 작동하지만 Firefox에서는 실패합니다.ajax 호출에서 기본 창 리디렉션

RJS 파일에있는 유일한 코드는 다음과 같습니다

page.redirect_to("http://localhost:3000/signin") 

내가 말했듯이, 그것은 크롬에서 완벽하게 작동하지만 파이어 폭스 (V3.6)은 메인 창을 리디렉션 거부합니다. 누구든지 파이어 폭스에서 어떻게 작동하도록 할 수있는 아이디어가 있습니까?

+0

가능한 복제본 [jQuery/JavaScript에서 리디렉션 페이지를 만들려면 어떻게해야합니까?] (http://stackoverflow.com/questions/503093/how-can-i-make-a-redirect-page-in-jquery -javascript) – fotanus

답변

1

콘솔에 오류가 있습니까?

그렇지에 "JS"응답하고 같은과 함께 JS 템플릿을 렌더링하기 쉬울 것 : 절대적으로 당신이 정말로 리디렉션해야 접선의 비트에

window.location = "http://localhost:3000/signin" 

"3000 로컬 호스트"에 어쨌든? 어쩌면 다른 해결책이 있을까요?

+0

이 URL은 개발하는 동안 자리 표시 자로 만 사용하지만 page.redirect_to는 window.location.href를 생성하므로이 방법을 사용하면 많은 차이가 있다고 생각하지 않습니다. – nenne

+0

콘솔에서 오류가있는 것 같지 않습니다. – nenne

1

당신은 아마 자바 스크립트를 통해 아약스 요청의 응답을 처리하고 리디렉션해야합니다

window.location = urlToDirectTo; 

나는 대부분의 브라우저는 아약스 요청 자체가 아니라 아약스 요청이 시작된 페이지를 리디렉션 것이라 생각합니다. Here's an answer과 유사한 질문을 통해 솔루션을 자세히 설명합니다.

+0

page.redirect_to는 javascript gode window.location.href를 생성하므로 많은 차이가 있다고 생각하지 않습니다. 이상한 것은 내가 심지어 could not는 경고 ('여보세요')를 알아 듣는다. 나타나기. 파이어 폭스가 자바 스크립트를 메인 창에 띄우고 있다고 생각하지 않는다. – nenne

+0

리디렉션 코드를 반환하고 있습니까? 아니면 200? – Spycho

+0

나는 빈 응답을 나타내는 304를 얻는 것처럼 보입니까? 이상하게 보입니다. 어쩌면 그냥 아약스 프레임을 리디렉션하고 메인 창에 아무것도 반환하지 않을까요? – nenne