は、ColdFusion 9のウェブサイトのための次のような構造を考えてみましょう。common.cfc以内ColdFusionセッションスコープはアプリケーションに対して永続的ですか?
/root
..../MyApp
........../Application.cfc
........../Index.cfm
..../SharedComponents
........../Common.cfc
は、私はルートの下に複数のアプリケーション間で共有したいすべての共通の機能が含まれています。
これらの関数の1つでは、セッション名を動的に作成して値を割り当てることができます。
私はこのセッションをJavaScriptプロセスに従って作成したいので、この関数をAJAXを通して呼び出します。
これはColdFusionで使用する式で、実際のURLにレンダリングされ、AJAXによって呼び出されます。
"#Application.Protocol & "://" & CGI.SERVER_NAME#/SharedComponents/common.cfc?method=CreateSession&strSessionName=TestSessionName&strSessionValue=TestValue"
ただし、この新しく作成したセッションをIndex.cfmに表示しようとすると、何も表示されません。
common.cfcをMyAppフォルダに再配置しようとしましたが、上記のようにColdFusionの式パスを変更して新しいパスを反映させても問題ありません。
これは私が、私の質問はある
(Application.cfcのが発見されたのMyAppフォルダ、ということを)自分のアプリケーションの範囲外の関数からのセッションをされて設定することができないと信じて私をリードアプリケーションのスコープ外の関数を呼び出す方法がありますが、それでもアプリケーションのセッションを管理できますか?
セッションはユーザーに関連付けられています。 'Session ["#strSessionName# "]'は実際にセッション名を作成しません。特定の名前でユーザーのセッションに変数を作成します。アプリケーションのスコープ外で何かを共有したい場合は、サーバーのスコープを考慮する必要があります。 –
セッションは本質的にアプリケーションに結びついています。ファイルがApplication.cfc/cfmで覆われていない場合、セッションはありません。 – Leigh