0

내 앱이 레일에 있습니다.URL에서 검색어 문자열을 지우려면 어떻게해야합니까? 리디렉션 만이 유일한 방법입니까?

http://example.com?logintoken=hjhzjkdhz과 같은 중요한 쿼리 문자열 매개 변수를 사용하여 (사용자가 다른 웹 사이트의 링크를 클릭 할 때) 내 앱으로 브라우저 요청을 가져 오는 중입니다.

하지만 컨트롤러에서이 logintoken을 사용해야하지만 페이지를 렌더링 한 후 브라우저 URL 표시 줄에 표시하지 않으려 고합니다. 요컨대, 브라우저의 ur 바에는 http://example.com만을 표시하고 싶습니다.

쿼리 문자열을 지우는 방법이 있습니까?

나는 이것을 실현하는 방법 중 하나 인 http://example.com으로의 리디렉션을 확인했습니다. 다른 방법이 있습니까?

답변

0

리디렉션 없이는 그렇게 할 수 없습니다 ... 렌더링 후에 브라우저 상태 (히스토리 푸시 및 팝)를 조작하면 기술적으로 가능합니다.

레일 측면에서

, 이러한 변수를 사용하여 PARAMS없이, 리디렉션 및 서버 변수에 URL 매개 변수를 전달하고 조치로 리디렉션해야합니다

def myaction 
    if params.any? 
     session[:myaction_params]={} 
     session[:myaction_params]=params 
     redirect_to myaction_path 
    elsif session[:myaction_params] && session[:myaction_params].any? 
     # use your params like this 
     # params[:logintoken] will now be session[:myaction_params][:logintoken] 
     # apply logic here 
    else 
     # do something else if there are no params 
     # redirect_to somewhere 
    end  
end 
0

다른 방법을 이렇게 요청을 POST로 변경하여 메시지의 매개 변수를 숨기는 것입니다.

+0

POST가 될 수 없도록 다른 웹 사이트에서 오는 일반적인 URL 클릭 ... –