ColdFusion CFHTTP Post выполняет второй запрос GET сразу после - PullRequest
3 голосов
/ 04 июня 2009

Я использую ColdFusion 8.

Я делаю сообщение CFHTTP на удаленный сервер. Удаленный сайт просмотрел их журналы, и они сказали, что мой код выполняет POST, а затем немедленно выполняет второй запрос 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#">

Кто-нибудь знает, почему они видят второй запрос GET сразу после моего POST? из-за этого (мы думаем) он терзает сессию и неправильно корректирует страницу

Я определенно не делаю GET, я делаю только один POST.

спасибо,

Рич

Ответы [ 5 ]

5 голосов
/ 04 июня 2009

Я предполагаю, что причина, по которой вы получаете второй GET, заключается в том, что ваш CFOUTPUT выводит извлеченное содержимое страницы в браузер, а затем, когда изображение или что-то из этого содержимого отображается на извлеченной странице, оно действует как GET. *

Помните, что CFHTTP не является состоянием. Под этим я подразумеваю, что каждый запрос с CFHTTP будет создавать новый сеанс. Вы можете заставить CFHTTP продолжить существующий сеанс, передав CFID / CFTOKEN через CFHTTPPARAM в запросе. Это может объяснить ваши сессионные проблемы.

0 голосов
/ 08 июня 2009

Если вы используете firefox, убедитесь, что у вас есть firebug и ySlow отключены для вашего запроса. Они запускают ваши URL-адреса дважды для настройки своих данных и могут стать настоящей проблемой, если вы не знаете, что они это делают.

Также попробуйте отключить перенаправление, если оно вам не нужно.

0 голосов
/ 04 июня 2009

ОК, я переключился на сервер CF 5, и он перестал делать 2-й GET. он просто делает POST сейчас, так что это может быть причудой с CF 8.

0 голосов
/ 04 июня 2009

Этот код находится внутри пользовательского тега CF? Если так, то звоните

<mytag>...</mytag>

или

<mytag />

Вызывает пользовательский тег ДВАЖДЫ! (Один раз для начального тега и один раз для конца.)

0 голосов
/ 04 июня 2009
redirect="false" //maybe?

Не уверен ... Так как доктор сказал ...

Если заголовок ответа содержит Поле местоположения И ColdFusion получает статус серии 300 (перенаправление) код, указывает, следует ли перенаправить выполнение по URL, указанному в поле.

...