現在、CF セッション管理を利用しており、J2EE セッション管理への移行を検討しています。私の試みでは、(CFsession 管理が J2EE セッションを使用するように設定されている場合) CF cfc リモート メソッドに対して行われた ajax 要求は、verifyclient 承認に失敗します。以下のコードは、セッション管理が CF セッション管理を使用する場合に機能します。
cfid と cftoken を使用して生成されるため、_cf_clientid はリモート メソッドに渡す正しい値ではなくなったと思います。
J2EE セッション管理を正しく実装し、verifyclient でリモート cfc メソッドを利用するにはどうすればよいですか? それともできないのでしょうか?CF タグ cfajaxproxy の使用はオプションではありません。
次のコード例は、jQuery ajax を使用して、verifyclient='true' を指定してリモート cfc メソッドを呼び出す方法を示していますが、CF のドキュメントでは cfajaxproxy の使用が必要であると示されています。これはそうではありません。(Ray Camden と DWMommy に感謝します。) このことから、J2EE セッションを使用しているときにクライアントを検証するための同様の方法を実装するための回避策もあるかもしれないと私は信じています。
前もって感謝します!
<script src="/plugins/jquery-1.7.2.min.js" type="text/javascript" language="Javascript"></script>
<cfajaximport />
<script>
$(function() {
$.ajax({
url: 'test.cfc',
type: 'get',
dataType: 'json',
data: {
method: 'sayHello',
yourname: 'Foo'
,_cf_clientid: _cf_clientid
},
success: displaySearchResults
});
});
</script>
<script>
function displaySearchResults(res){
$('#searchResults').html( res );
}
</script>
<div id="searchResults"></div>
test.cfc
component{
remote any function sayHello ( string yourname = 'anonymous')
returnformat='JSON' verifyclient='true'{
return 'Hello ' & arguments.yourname;
}
}