레일에서 POST를 사용하여 redirect_to
POST 방법을 사용하여 리디렉션 할 수 있습니까?
아니면 항상 GET을 사용하여 리디렉션해야합니까?
이를위한 사용은 사용자에게 추가 단계를 도입하지 않고 전자 상거래 사이트에 대한 주문 프로세스의 마지막 단계에서 데이터를 지불 프로세서로 전송하는 것입니다.
POST 요청으로는 리디렉션이 불가능하며 HTTP / 1.1 프로토콜 의 일부입니다 .
결제 프로세서에 게시 할 양식 데이터가 포함 된 다른 단계를 도입하거나 애플리케이션에서 게시물을 보낼 수 있습니다 (PROTX로 작업 할 때 수행 한 작업).
모든 제품 및 배송비 등이 포함 된 요약 페이지를 표시하여 문제를 "해결했습니다". 일반적인 "구매를 확인하고 결제하려면 아래 계속 버튼을 클릭하십시오"유형의 메시지가 표시됩니다. 계속 버튼을 누르면 사이트가 제품 데이터와 모든 것을 결제 프로세서에 게시합니다.
짧은 대답은 -가 이다 사용자에 대한 또 다른 단계. 그러나 핵심은 가능한 한 자연스럽고 결제 경험의 일부가되도록 만드는 것입니다. 이렇게하면 "단지 또 다른 단계"만큼 많이 오지 않습니다.
당신은 그러나 않습니다 더 나은 방법을 건너, 나는 그것이 :) 무엇인지 듣고 매우 관심이 있습니다
간단한 자바 스크립트 줄을 사용하면 POST 양식이 자체적으로 게시되도록 할 수 있습니다 ( form.submit () ). 그런 다음 양식을 숨기고 양식이 결제 처리자에게 제출되는 동안 사용자에게 간단한 "잠시 기다려주십시오 ..."메시지를 표시 할 수 있습니다.
아이디어는 후드 아래에서 : post 메소드로 양식을 생성하는 동안 '리디렉션'을 만드는 것입니다.
나는 같은 문제에 직면하고 해결책을 gem으로 추출 repost
했기 때문에 모든 작업을 수행하므로 양식으로 별도의 뷰를 만들 필요가 없으며 redirect_post()
컨트롤러 에서 제공되는 gem 함수 를 사용하십시오.
class MyController < ActionController::Base
...
def some_action
redirect_post('url', params: {}, options: {})
end
...
end
html 해킹 : 대신 redirect_to,이 html 템플릿 렌더링 (Alsciende 답변 기반)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<form id="step" name="step" action="<%= URL %>" method="POST">
<!-- optional params -->
<input type='hidden' name='token' value='e7295d6d1cd512a8621f1de5965b90a' />
</form>
<script type="text/javascript">
$(document).ready(function () {
setTimeout(function () {
$("#step").submit();
}, 0);
});
</script>
참고 URL : https://stackoverflow.com/questions/985596/redirect-to-using-post-in-rails
'programing' 카테고리의 다른 글
.NET Framework, CLR 및 Visual Studio 버전 번호는 서로 어떤 관련이 있습니까? (0) | 2020.12.08 |
---|---|
Ruby on Rails 애플리케이션에서 CSS를 어떻게 사용합니까? (0) | 2020.12.08 |
클라우드 컴퓨팅과 분산 컴퓨팅의 차이점은 무엇입니까? (0) | 2020.12.08 |
Rails 프로젝트 용 Google 사이트 맵 파일 (0) | 2020.12.08 |
git이 WebDAV 리모컨의 비밀번호를 기억하도록하는 방법이 있습니까? (0) | 2020.12.08 |