2009-07-15 3 views
2

My Servlet 앱. 사용자가 양식을 제출할 때마다 두 번 호출됩니다. POST 요청으로 처음, GET 요청 (동일한 URI를 가진 두 요청)으로 즉시 호출됩니다.일부 브라우저는 POST를 보내고 GET 요청을 전송합니다.

이 문제는 응용 프로그램 서버와 별개의 것으로 보입니다. (나는 tomcat-6.0과 resin.2.1을 사용해 보았습니다.)

문제는 브라우저와 관련이있는 것 같습니다. MS Internet Explorer 6.0, 7.0 및 8.0 클라이언트에서는 문제가 발생하지 않지만 Google Chrome-2.0 및 FireFox-3.0.11 클라이언트에서는 문제가 발생합니다.

HTML 코드는 간단하다 :

<form method="post" action="MyServlet?formSubmitted"> 
    <input type="text" name="data"> 
    <input type="submit" value="OK"> 
</form> 

누군가가 그런 행동을 설명 할 수 있을까요?

+1

양식을 제출하는 JavaScript를 찾으십시오. 그리고 당신이 나를 믿지 않는다면, 그 폼을 포함하는 간단한 HTML 페이지를 만들고, 그 밖에 아무것도 쓰지 말고, POST 만 볼 수 있는지 확인하십시오. 왜냐하면 브라우저가 두 가지를 모두 수행했다면, 그들은 매우 부러 졌을 것이고, 누군가는 지난 15 년 동안 그것을 알아 차렸을 것입니다. – kdgregory

+0

감사합니다 kdgregory. 자바 스크립트가 포함되어 있지 않습니다. 문제의 원인을 찾아 내면서 테스트 케이스를 단순화하려고 노력할 것입니다. –

+0

기꺼이 문제를 해결했습니다. 이미지 태그를 추측하지 못했습니다 (Firefox 용으로 제출 된 버그가 없으면 그렇게하는 것이 좋습니다) – kdgregory

답변

4

방금 ​​정확히 같은 문제가 있었는데 렌더링 된 새 페이지에서 빈 src 매개 변수가있는 태그로 밝혀졌습니다. 이로 인해 Firefox는 원래 게시물과 동일한 모양을 나타냅니다 .

+0

좋은 캐치 - 며칠 전 빈 URL과 관련하여 약간 다른 질문이 떠오른다는 것을 상기 해 보았습니다. 그러나 원인으로 보려고 생각한 적이 없었습니다. – kdgregory

+0

(왜 wiki로 표시되었는지 확실하지 않음 - 답변에 점수가 필요함) – kdgregory

0

이것은 Chrome에 등록 된 this bug과 매우 유사합니다. 나는 이것을 추적하고 결의안을 찾는다.

+0

적어도 Chrome에서는 문제가 해결되었습니다. 파이어 폭스, 그러나 나는 확신하지 못한다. (FF 3.0.11/리눅스에서는 그 행동을 보지 못한다.) – kdgregory

+0

꽤 성숙한 파이어 폭스에 등장한 꽤 심각한 버그입니다. –

+0

당신은 완전히 옳았습니다. 나는이 브라우저들을 비난하지 않는다. 내 코드에 뭔가 잘못되었으므로 내가 도움을 요청한 것입니다. 과거에 누군가가 비슷한 것을 경험했는지 누가 알 수 있습니까!. 어쨌든 고마워, Carlos –

0

클라이언트 쪽 JavaScript가 아닌 것으로 확신하는 경우 (테스트를 단순화하고 확인하는 데 시간을 내 주셔서 감사합니다) 다음으로는 서버 측 리디렉션이 필요합니다.

나는 당신이 Windows에서 실행되고 있다고 믿는다. (Chrome이 유일하게 존재하는 곳이기 때문에), Fiddler 도구 (MSDN에서 제작)를 다운로드하십시오. 클라이언트와 서버간에 발생하는 모든 요청을 표시합니다. POST가 302 응답을받는 것을 보면, 이는 서버 측 리디렉션의 표시입니다. 모니터링

+0

고마워, kdgregory. 피 들러는 정말로 열중하고 있습니다. –

+0

나는 비참한 무식한 사람이고, 나는 부분적인 진보 보고서로 당신을 지루하게하고 싶지는 않지만, 나는 그들을 쓸 것을 강요 당한다. 어쩌면 이것이 솔루션의 길에서 나를 도울 것입니다. –

+0

전적으로, FireFox-3.5로 업데이트했고 문제가 사라졌습니다. 양식에서 사용자 개입 당 POST 하나만 제출하십시오. –