2013-02-03 2 views
1

내가 비슷한 질문을 알고 전에 요청을받은,하지만 사람이 특정 문제에 대한 해결책 찾을 도움이 될 수 있는지 궁금 해서요 : 그 내가 좋겠 내가 양식을 가지고리디렉션 부모 - 대체 논리

을 여러 도메인에있는 몇 가지 다른 웹 사이트에 퍼가는 것을 좋아합니다. 이 양식을 PayPal로 리디렉션해야합니다. 계획은 iframe에이 양식을 포함 시켜서 등을 업데이트하는 작업과 최소한의 코드를 포함시키는 작업이었습니다. 그러나 동일한 원본 정책으로 인해 parent.location.href = "http://PaypalPaymentAddress.com";을 사용하여 양식을 리디렉션 할 수 없습니다. 나는 프레임에서 지불을 처리하고 싶지 않다. (페이팔은 이것을 금지한다.) ...

내가 생각할 수있는 유일한 방법은 스크립트를 실행시키고 부모 페이지로 양식을 렌더링하는 것이다. 웹 서비스 또는 그렇게 HTML을 얻으려면,하지만 그것은 분명히 많은 일이 될 것입니다!

아이디어를 얻으려면 어떻게해야할까요?

답변

2

양식에 target-attribute "_parent"을 사용할 수 있습니다. 제출 될 때 target-URL은 부모 창에로드됩니다.

+0

한 가지 문제가 있습니다. 서버 측 유효성 검사가 실행 중이며 양식이 유효하지 않은 경우 리디렉션이 발생하지 않도록하고 싶습니다. 이런 일을 막을 수있는 방법이 있습니까? –

+0

ajax를 사용하여 백그라운드에서 서버 측 유효성 검사를 수행하고 유효성 검사가 성공했을 때 양식을 제출할 수 있습니다. –

+0

내 서버 측 유효성 검사 또한 트랜잭션 기반입니다. 처리하기 전에 항목 수를 확인합니다 ... AJAX 검사가 해킹에 개방 된 채로 양식을 제출하면됩니다. 그러나 빈 양식이있는 작은 HTML 페이지를 다시 보내 (자바 스크립트 리디렉션과 비슷 함) 부모에게 제출하고이 양식을 자바 스크립트와 함께 제출하십시오. –

1

최종 방법은 Molle 박사의 대답을 기반으로했지만 약간 다릅니다. 다른 사람들에게 유용 할 경우를 대비하여 여기에서 설명했습니다 :

모든 서버 유효성 검사 등을 한 번만 수행 할 수 있도록 정상적으로 제출할 양식을 설정했습니다. 양식이 성공적으로 제출되면 (서버 유효성 검사를 통과하면) 빈 양식을 포함하는 작은 html 클라이언트 페이지가 다시 게시됩니다.

이 빈 양식에는 상위 페이지 URL과 target = "Parent"의 조치가 있으며 클라이언트 "문서 준비"에서 jQuery 메소드는 양식을 제출하여 상위 페이지를 다시로드하게합니다.

"_top"속성이있는 링크는 스크립트가 비활성화 된 경우에도 제공됩니다.

<script type="text/javascript"> 
    jQuery(document).ready(function() { 
     $("#redirectForm").submit(); 
    }); 
</script> 
<a href="{parentpageurl}" id="redirectLink" target="_top">click here if not redirected automatically</a><br /> 

<form id="redirectForm" method="POST" action="{parentpageurl}" target="_parent"> 

</form> 

이 방법은 교차 도메인에서 작동하므로 "동일한 출처 정책"을 벗어나는 한 가지 방법입니다. 희망은 누군가를 돕는다!

관련 문제