当我在本地发出请求时,维护 FlexSession 完全没有问题;但是,当我从另一台计算机发出请求时,它会为每个请求创建重复的 FlexSession。我注意到每个请求的 JSESSIONID 都不同,这可能是导致会话被欺骗的原因。
但我不知道为什么会发生这种情况。我得到的具体错误是:
Channel.Ping.Failed error Detected duplicate HTTP-based FlexSessions, generally due to the remote host disabling session cookies. Session cookies must be enabled to manage the client connection correctly.
我的crossdomain.xml如下:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="master-only"/>
<allow-access-from domain="*" secure="false"/>
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>
EDIT:
我们在后端使用 spring-flex 集成。此外,这种情况发生在多个浏览器中;我们尝试了 IE、Firefox 和 Chrome。
这是 Flex 代码:
var ro : RemoteObject = new RemoteObject("myDestination");
ro.endpoint = "http://localhost/foo";
ro.source = "com.bar.MyService";
var op : AbstractOperation = ro.getOperation("serviceMethod");
op.addEventListener( FaultEvent.FAULT, ro_faultHandler );
op.addEventListener( ResultEvent.RESULT, ro_resultHandler );
op.send();
有三篇文章描述了发生的情况。这些文章是由一些从事 BlazeDS 工作的人撰写的,阅读完这些文章后您应该能够解决您的问题。如果没有,请尝试创建一个重现问题的功能测试,我会看一下。
亚历克斯的博客 http://www.alexglosband.com/?p=3
梅特的博客 http://meteatamel.wordpress.com/2011/01/26/duplicate-session-errors-in-lcdsblazeds/
林的博客 http://blogs.adobe.com/lin/2011/05/duplication-session-error.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)