Повторяющиеся сеансы Flex с междоменными запросами - PullRequest
4 голосов
/ 07 июля 2011

Когда я делаю запрос локально, у меня нет проблем с обслуживанием 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>

РЕДАКТИРОВАТЬ:

Мы используем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();

1 Ответ

8 голосов
/ 08 июля 2011

Есть три статьи, описывающие, что происходит.Статьи написаны некоторыми парнями, работающими над BlazeDS, и вы сможете исправить их после прочтения.Если нет, попробуйте создать функциональный тест, воспроизводящий проблему, и я посмотрю.

Блог Алекса
Блог Мете
Блог Лин

...