Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.06.2009, 20:58
MasterOfDrama вне форума Посмотреть профиль Отправить личное сообщение для MasterOfDrama Найти все сообщения от MasterOfDrama
  № 1  
Ответить с цитированием
MasterOfDrama

Регистрация: Jun 2009
Сообщений: 8
По умолчанию crossdomain.xml в разных браузерах: IE, Opera, Mozilla.

Пытаюсь осуществить обращение флешки к стороннему серверу. Все сделал по правилам: создал crossdomain.xml, загрузил в корень.
В Internet Explorer 7 и FireFox Mozilla 3 все работает великолепно!!! Opera 9 - полный провал: флешка не может получить доступ к стороннему серверу.
Изучение оправляемых оперой пакетов снифером показал, что опера вместо того чтобы запрашивать crossdomain.xml шлет всякий бред и получает от xxx.yyy.ru всякие error 404 и т.д.
В чем проблема? Ведь флеш приложения нормально работают в Опере. Почему не работает мое? Как мне быть уверенным в том что и в остальных менее популярных браузерах моя флешка будет работать правильно?!

Моя простейшая флешка на http://vkontakte.ru/appxxxxxxx_xxxxxxx. Грузиться отсюда: http://cs4337.vkontakte.ru/uxxxxxxxxx/blablablabla.zip
Код AS1/AS2:
System.useCodepage=true;
 
info.text="Введите команду и нажмите \"SEND\"";
var sen_obj:LoadVars=new LoadVars(); //Отправитель
var rec_obj:LoadVars=new LoadVars(); //Получатель
but_send.onPress=function():Void{
	vivod.text="";
	sen_obj.com=vvod.text;
	sen_obj.sendAndLoad("http://xxx.yyy.ru/cgi-bin/com.cgi",rec_obj,"POST");
	info.text="Команда отправлена...";
}
rec_obj.onData=function(text:String):Void{
	if (text == undefined){
		info.text="Сервер недоступен";
	}
	else {
	info.text="Сервер ответил: ";
	vivod.text=text;
	}
}
Мой perl скрипт по адресу http://xxx.yyy.ru/cgi-bin/com.cgi
PHP код:
#!/usr/bin/perl

if ($ENV{'REQUEST_METHOD'eq "POST")
{
read(STDIN$bufer$ENV{'CONTENT_LENGTH'});}
else{
$bufer=$ENV{'QUERY_STRING'};}
@
pairs split(/&/, $bufer);
foreach 
$pair (@pairs){
(
$name$value) = split(/=/, $pair);
$name =~ tr/+/ /;
$name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C"hex($1))/eg;
$name =~ s/[\n\\<>]/ /g;
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C"hex($1))/eg;

$FORM{$name} = $value;}

print 
"Content-Type: text/html\n\n";
print 
"I have got your command. It was like: $FORM{com}"
crossdomain.xml доступен по адресу http://xxx.yyy.ru/crossdomain.xml
Код:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
	<site-control permitted-cross-domain-policies="master-only"/>
	<allow-access-from domain="*"/>
	<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
Добавлено через 1 час 43 минуты
Вот запросы браузеров и ответы сервера:

Mozilla запрос:
Код:
GET /crossdomain.xml HTTP/1.1
Host: xxx.yyy.ru
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Ответ сервера на запрос Mozilla:
Код:
HTTP/1.1 200 OK
Date: Tue, 23 Jun 2009 17:25:40 GMT
Server: Apache
Last-Modified: Sat, 20 Jun 2009 21:29:38 GMT
ETag: "ea6b6d-13c-4a3d54c2"
Accept-Ranges: bytes
Content-Length: 316
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">

<cross-domain-policy>
	<site-control permitted-cross-domain-policies="master-only"/>
	<allow-access-from domain="*"/>
	<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
Запрос Opera:
Код:
GET /crossdomain.xml HTTP/1.1
User-Agent: Opera/9.64 (Windows NT 5.1; U; ru) Presto/2.1.1
Host: xxx.yyy.ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Referer: http://cs4337.vkontakte.ru/uxxxxxxx/blablablabla.zip
Connection: Keep-Alive
Ответ сервера на запрос Opera:
Код:
HTTP/1.1 302 Found
Date: Tue, 23 Jun 2009 17:31:46 GMT
Server: Apache
Location: http://www.yyy.ru/err/error.phtml?err=403
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
X-Pad: avoid browser bug

e0 
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>302 Found</TITLE>
</HEAD><BODY>
<H1>Found</H1>
The document has moved <A HREF="http://www.yyy.ru/err/error.phtml?err=403">here</A>.<P>
</BODY></HTML>

0
Компетентные товарищи, разьясните пожалуйста этот бред. Почему на вполне нормальный запрос Оперы сервер выдает страницу с ошибкой вместо crossdomain.xml ?!!!

Старый 24.06.2009, 18:36
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Запросите просто crossdomain.xml из Opera, для начала. Есть подозрение, что виноват ваш собственный сервер.

Старый 24.06.2009, 18:58
MasterOfDrama вне форума Посмотреть профиль Отправить личное сообщение для MasterOfDrama Найти все сообщения от MasterOfDrama
  № 3  
Ответить с цитированием
MasterOfDrama

Регистрация: Jun 2009
Сообщений: 8
Пробовал, все нормально: crossdomain.xml нормально загружается. Это не мой собственный сервер, а бесплатный хостинг. Попросил протестировать друзей. Около 30 человек учавствовало. Не работает у всех у кого Opera.
Пробовал на локальном сервере (SmallHttpServer v3) - такая же история: всем браузерам отправляется crossdomain.xml а Опере страница с ошибкой...

Добавлено через 9 минут
Прихожу к единственному логическому выводу: запрос оперы отличается от запроса мозиллы и от случая когда оперой напрямую запрашивается crossdomain.xml только наличием "Referer" в HTTP заголовке:
[code]Referer: http://cs4337.vkontakte.ru/uxxxxxxx/blablablabla.zip[code]
Может быть попробовать как то заставить в AS запросить crossdomain.xml без оправки реферера? Только как это сделать?..

Старый 25.06.2009, 09:56
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Реферер отправляет не флеш, а браузер.

Старый 25.06.2009, 14:54
MasterOfDrama вне форума Посмотреть профиль Отправить личное сообщение для MasterOfDrama Найти все сообщения от MasterOfDrama
  № 5  
Ответить с цитированием
MasterOfDrama

Регистрация: Jun 2009
Сообщений: 8
Подскажите пожалуйста хоть в каком направлении искать?? Что еще попробовать? Невижу выхода.

Старый 27.08.2011, 05:41
CrazyPHP вне форума Посмотреть профиль Отправить личное сообщение для CrazyPHP Найти все сообщения от CrazyPHP
  № 6  
Ответить с цитированием
CrazyPHP

Регистрация: Sep 2008
Сообщений: 27
таже самая беда (( из оперы не могут выполнится запросы к стороннему серверу (((

Старый 31.08.2011, 16:51
Merf вне форума Посмотреть профиль Отправить личное сообщение для Merf Посетить домашнюю страницу Merf Найти все сообщения от Merf
  № 7  
Ответить с цитированием
Merf
 
Аватар для Merf

Регистрация: Nov 2008
Адрес: Ukraine
Сообщений: 88
Отправить сообщение для Merf с помощью ICQ Отправить сообщение для Merf с помощью Skype™
Попробуйте при публикации флешки на странице указать параметр allowScriptAcces
PHP код:
<param name="allowScriptAccess" value="always"
__________________
http://merfius.weebly.com/

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.