2009-05-13 6 views
0

페이지를 외부 웹 사이트에 제출해야합니다. 문제가 아니다.외부 웹 사이트에 제출하고 리디렉션을 통해 다른 페이지로 사이트를 제출하십시오.

문제는 외부 웹 사이트에서 성공적인 메시지를 표시합니다. 좋지 않습니다. 제출 된 사이트를 더 사용자 친화적 인 것으로 리디렉션해야합니다. 외부 웹 사이트는 리디렉션되지 않습니다. 리디렉션 페이지를 전달하면 가장 쉽게 생각할 수 있습니다.

어쨌든, 가장 쉽고 적은 노력의 접근 방법에 대한 제안은 없습니까? 나는 iFRAME을 가지고있는 것에 대해 읽었습니다. 다른 방법이 있습니까?

미리 감사드립니다.

정적 HTML 페이지입니다.

답변

1

외부 사이트의 마크 업을 터치 할 수 없다고 가정합니다.

정적 인 경우 해결책이 부족합니다. 필자는 종종 cURL 라이브러리를 사용하여 이러한 종류의 기능을 제공했습니다 (장면 뒤에서 외부 사이트에 게시).

iframe 및 자바 스크립트로 처리 할 수 ​​있습니다. 양식의 대상을 iframe의 이름으로 설정하십시오 (CSS를 사용하여 iframe을 숨길 수 있습니다). 그런 다음 잘 제출해야합니다.

-1

IFRAME 솔루션은 가장 단순한 것처럼 보이지만 오류가 발생하면 눈치 채지 못할 수도 있습니다.

제출할 사이트가 예측 가능한 마크 업을 반환하는 경우 사이트에서 구문 분석하여 게시물의 결과에 반응 할 수 있으므로 AJAX 경로가 바람직합니다. 그러나 JavaScript를 사용하지 않는 사용자에게는 취약합니다.

아마 가장 좋은 해결책은 IFRAME 기법을 사용하기 위해 마크 업을 작성하는 것이지만 양식에 'onsubmit'처리기를 넣는 것입니다. JavaScript가 활성화되어 있으면 처리기가 AJAX를 처리 할 수 ​​있습니다. 즉, IFRAME 솔루션이 시작될 것입니다.

JavaScript가 활성화되어있을 때 IFRAME 제출을 방지하려면 onsubmit 속성에 'return false'를 추가하십시오. .

<form action="http://external.server/submission.html" 
     target="id_of_your_IFRAME" 
     onsubmit="submitViaAJAX(); return false"> 
    ... form fields ... 
</form> 
+0

무서운 보안 경고 일련의 동의가 제어가 없으면 모든 Ajax 접근 방식이 동일한 출처 정책으로 실행되어 실패합니다. – Quentin

+0

반드시 그런 것은 아닙니다. jquery는 반환 된 마크 업을 의사 결정 프로세스에서 해석 할 수있는 DOM에 배치 할 수 있습니다. – belugabob

1

"외부 사이트가 리디렉션되지 않습니다."라고 말했기 때문에 내가 제어 할 수 없다고 가정합니다.

이것은 내가 생각할 수있는 세 가지 접근 방법이 있음을 의미합니다.

  1. 자신의 서버를 통해 요청을 프록시하십시오. 이것은 안전한 옵션이지만 제 3 자 사이트가 사용자에게 기대하는 쿠키는 사용하지 않습니다.
  2. iframe을 사용하여 결과를 읽을 수 없으므로 결코 실패하지 않는다고 가정합니다. 보상을받을 수 없으면 오류가 있거나 시간이 초과 될 수 있습니다.
  3. 자바 애플릿 (또는 유사)를 사용하고, 저자가이 외부 사이트이기 때문에 (그들은 심지어 자바 플러그인이 설치되어있는 경우) 사용자가