2012-05-02 3 views
0

현재 Safari (5.1.5)의 현재 버전에서만 발생하는 버그가 있으며 여기에 누군가가 해결 방법을 제시 할 수 있는지 궁금합니다. 필자는 5.1.2에서 테스트를 해 보았지만 정상적으로 작동했습니다. 5.1.3 및 5.1.4에 대해서는 잘 모르겠습니다. 릴리스에 대한 액세스 권한이 없기 때문입니다.Safari가 리디렉션 후 동일한 양식을 다시 보냅니다.

버그 내가 무슨 일이 일어나고 있는지 설명 후 그 소스를 보여주고 있습니다, 세 페이지가 필요합니다

FirstPageWithForm.htm

<form id="theForm" action="ActionHandler.ashx" method="post"> 
    <input type="hidden" name="differentField" value="1234"/> 
    <input type="hidden" name="sameField" value="1111"/> 
</form> 

<script type="text/javascript"> 
    var theForm = document.getElementById("theForm"); 
    theForm.submit(); 
</script> 

SecondPageWithForm.htm

<form id="theForm" action="ActionHandler.ashx" method="post"> 
    <input type="hidden" name="differentField" value="5678"/> 
    <input type="hidden" name="sameField" value="1111"/> 
</form> 

<script type="text/javascript"> 
    var theForm = document.getElementById("theForm"); 
    theForm.submit(); 
</script> 

ActionHandler.ashx

public void ProcessRequest(HttpContext context) 
{ 
    var referrer = context.Request.UrlReferrer; 
    var differentField = context.Request["differentField"]; 
    context.Response.Write(differentField); 
    if (differentField == "1234") 
    { 
     if (referrer.ToString().Contains("Second")) 
      context.Response.Write("Failure"); 
     else 
     { 
      context.Response.Redirect("SecondPageWithForm.htm"); 
     } 
    } 
    else 
     context.Response.Write("Success"); 
} 

두 폼의 필드 이름은 같지만 필드 중 하나의 필드 값이 다릅니다. 그러나이 코드가 실행될 때 Safari에서 "1234" 값은 "5678" 대신 differentField으로 전송됩니다. 이 버그가. NET과 아무 관련이 없다고 생각하지만 다른 언어를 테스트하는 쉬운 방법이 없습니다. 나는 이미 시도

것들 :

  • 함수에서 양식 제출 코드를 퍼팅 후 해당 전화.
  • Jquery가 필요하며 $ (document) .ready() 함수에서이를 호출해야합니다.
  • 함수 호출을 setTimeout()에 넣습니다.
  • 내가 누르는 버튼으로 기능 교체.
  • 처리기를 복사하고 대신 두 번째 양식을 복사본에 보냅니다.

이러한 방법 중 하나 하나가 모두 성공 효과 대신 "실패"를 인쇄하는 것과 동일한 효과가있었습니다.
사파리 포럼에이 버그를 제출할 예정입니다. (Apple 개발자 계정이 없으며 현재는 새 계정을 만들지 않습니다.)하지만 누군가가 저를 도와 줄 수 있었으면 좋겠습니다. 문제를 해결할 때까지이 문제의 해결 방법.

편집 : 사파리 포럼 버그 리포트 : 내 사파리 포럼에서 https://discussions.apple.com/thread/3921507

답변

0

NicolasIgot 내 문제에 대한 해결책을 알아 냈어.

두 번째 양식의 양식 태그에 autocomplete="off"을 추가하기 만하면 모든 것이 다시 작동하기 시작했습니다. 나는 진짜 문제에서 그것을 시도하지 않았지만, 간단한 테스트 케이스에서 작동하므로, 나는 그것에 대한 확신을 가지고있다.

관련 문제