Next Page

1

Previous Page

スレッド: CFHTTPで302エラー

作成日: 06/12/14 01:48 PM

返信: 4

fairytaledream


新米


入会日: 09/09/11

投稿数: 15

CFHTTPで302エラー
06/12/14 1:48 PM

Win2003Server の ColdFusion9 で動作しているプログラムを
Win2008 R2 Server の ColdFusion10 の環境へ移行しました。

そうしたところ、CFHTTP の処理で The document has moved here. という
メッセージが出るようになってしまいました。

here のリンクをクリックすることで、期待する場所に遷移できます。

遷移先は、https のサイトで、そのサイトはVerisignの証明書を使っています。

何がダメなのか、いまのところ見当がつきません。
解決方法をご存知の方、教えていただけないでしょうか。

Link | Top | Bottom

AXL


長老


入会日: 02/02/08

投稿数: 246

RE: CFHTTPで302エラー
06/12/14 3:27 PM

コードなしでは何とも言えませんが、

redirect="yes"

が足りないのでは。

詳細はオフィシャルのcfhttp欄を。

Link | Top | Bottom

fairytaledream


新米


入会日: 09/09/11

投稿数: 15

RE: CFHTTPで302エラー
06/12/14 3:49 PM

回答ありがとうございます。
redirect="yes"
は、デフォルトでyesなので、とくにつけていませんでした。
で、つけてみましたが、やはりおなじでした。

ソースは、以下のような感じです。

<cfset id="ididid">

<CFHTTP
method="POST"
url="#application.URL#"
charset="shift-jis"
resolveURL="no"
redirect="yes"
>
<cfhttpparam name="ID" type="FormField" value="#id#">
<cfhttpparam name="PASSWORD" type="FormField" value="#application.pwd#">
<cfhttpparam name="paramA" type="FormField" value="#form.paramA#">
</CFHTTP>

Link | Top | Bottom

AXL


長老


入会日: 02/02/08

投稿数: 246

RE: CFHTTPで302エラー
06/13/14 4:33 PM

W3 のページの 302 Status Code のところを調べてみたら、以下のように記されていました。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3

If the 302 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.

よって、問題にされているものはスタンダードに則った正常な動作ということですね。 POST の場合は、ユーザーの了承なしでは自動でリダイレクトはしてはならないと言っているので、ColdFusion はその仕様にちゃんと従っているだけです。

他も調べてみたら、やはりその旨が記載されてました。
https://bugbase.adobe.com/index.cfm?event=bug&id=3744211

Status が ToFix になっているのと、S V Pavankumar が新たな要素(ユーザーの了承)を cfhttp に加えることが可能と言っているので、将来的にはその辺がスタンダードに則った上で何かしら改善されるのでは。

Link | Top | Bottom

fairytaledream


新米


入会日: 09/09/11

投稿数: 15

RE: CFHTTPで302エラー
06/16/14 8:24 AM

返信ありがとうございます。

302コードは、永続的なリダイレクトではないので、301コードを返すべきであるというところまで
わかっていましたが、以前のバージョンではできていたので「なぜ?」と思っていました。

2つめのリンクで、やはりできなくなったのだとわかりました。
RedirectされたURLを再度ロケーションするという方法もあるようですが。
http://www.bennadel.com/blog/934-ask-ben-handling-redirects-with-coldfusion-cfhttp.htm
まずは、リンク先で301でRedirectをするように、依頼してみたいと思います。

ありがとうございました。

Link | Top | Bottom

Next Page

1

Previous Page

新規投稿

ログイン して返信して下さい。