2009-06-03 4 views
3

ColdFusion 8을 사용 중입니다.ColdFusion CFHTTP 포스트가

원격 서버에 CFHTTP Post를하고 있습니다. 원격 사이트는 로그를보고 내 코드가 POST를 수행하고 있고 즉시 2 차 GET 요청을한다고합니다. 여기

내 코드 (URL이 변경되었습니다)된다

<cfhttp url="https://www.theurlofthesite.com" method="POST" port="443" resolveurl="yes" redirect="yes"> 
<cfhttpparam type="FORMFIELD" name="type" value="SALES"> 
<cfhttpparam type="FORMFIELD" name="account" value="10003"> 
<cfhttpparam type="FORMFIELD" name="Submit" value="Submit+Request"> 
</cfhttp> 

<Cfoutput>#cfhttp.fileContent#</CFOUTPUT> 

<cfdump var="#cfhttp#"> 

사람이 그들이 바로 내 POST 후 2 GET 요청을보고있는 이유는 어떤 생각을 가지고 있습니까? 세션을 파기하고 이것 때문에 페이지를 올바르게 returing하지 않습니다. (우리는 생각합니다)

나는 GET을하고 있지 않습니다. 나는 단지 하나의 POST만을하고 있습니다.

덕분에, 사이먼이 말했다 때문에

리치

+0

로그 세부 정보를 추가 할 수 있습니까? 원격 서버의 POST와 동일한 파일에서 GET을 실행합니까? POST에 대해 발행 된 상태 코드는 무엇입니까? – Jayson

+0

cfoutput 및 cfdump 부분을 제거하더라도 여전히 동일한 동작을합니까? – Kip

답변

0

좋아, CF 5 서버로 전환하고 2 차 GET을 중단했다. 현재 POST 일 뿐이므로 CF 8의 버크가 될 수 있습니다.

+0

그렇다면 확실히 저에게 버그처럼 보입니다 ... – Kip

0
redirect="false" //maybe? 

확실하지 ... 응답 헤더가 위치 필드를 포함하고 ColdFusion이 을받는 경우

300 시리즈 (리디렉션) 상태 코드는 실행을에 지정된 URL로 리디렉션할지 여부를 지정합니다.필드.

+0

redirect = "no"로 시도했지만 동일한 결과가 나타남 – Rich

-1

이 코드는 사용자 정의 CF 태그 안에 있습니까? 그럼

<mytag>...</mytag> 

또는

<mytag /> 

를 호출하면 두 배의 사용자 정의 태그를 호출합니다! (시작 태그에 대해 한 번 끝까지 한 번)

+2

이것은 두 번째 히트가 GET 인 이유를 설명하지 않음 – Antony

+0

원래 문제를 설명하지는 않지만 원하는 경우이 동작을 방지하는 방법을 포함시켜야합니다) : 및 이와 같은 방식으로 작동하는 데 관심이있는 사람은 livedocs에서이 페이지를 읽어야합니다. http://livedocs.adobe.com/coldfusion /8/htmldocs/reuseCode_7.html –

5

두 번째 GET을 얻은 이유는 CFOUTPUT이 검색된 페이지 콘텐츠를 브라우저에 출력 한 다음 해당 콘텐츠의 이미지 또는 기타 콘텐츠 검색된 페이지에서 렌더링되어 GET 역할을합니다.

CFHTTP는 상태 저장이 아닙니다. 이것은 CFHTTP를 가진 각 요청이 새로운 세션을 생성한다는 것을 의미합니다. 요청시 CFHTTPPARAM을 통해 CFID/CFTOKEN을 전달하여 CFHTTP에 기존 세션을 계속 진행시킬 수 있습니다. 이것은 세션 문제를 설명 할 수 있습니다.

+0

이것을 테스트 할 수 있습니다 .. cfdump 태그를 제거하고 cfouput을

#HTMLEditFormat(cfhttp.fileContent)#
으로 변경하십시오. 그러면 브라우저에서 정확히 무엇을 얻고 있는지 확인하고 브라우저가 후속 요청을하지 않는지 확인하십시오. – Kip

0

파이어 폭스를 사용하는 경우 요청에 대해 방화 광 및 ySlow를 해제해야합니다. 그들은 자신의 데이터를 설정하기 위해 두 번 귀하의 URL을 발사하고 그들이 당신이 그것을하고 있는지 모를 때 진짜 문제가 될 수 있습니다.

또한 필요하지 않으면 리디렉션을 끄십시오.

+0

thanks. 다시 CF5 (CF8에서)로 전환 한 후 두 번째 GET이 중지되었습니다. 기묘한 – Rich