我目前正在使用 CF 会话管理,并且一直在研究如何过渡到使用 J2EE 会话管理。在我尝试这样做时,向 CF cfc 远程方法发出的 ajax 请求(当 CFsession 管理设置为使用 J2EE 会话时)未能通过 verifyclient 授权。下面的代码在会话管理使用 CF 会话管理时有效。
我的假设是 _cf_clientid 不再是传递给远程方法的正确值 - 因为它是使用 cfid 和 cftoken 生成的。
如何成功实现 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>
测试.cfc
component{
remote any function sayHello ( string yourname = 'anonymous')
returnformat='JSON' verifyclient='true'{
return 'Hello ' & arguments.yourname;
}
}