Как решить ошибку: [строгий] игнорирование файла политики на http://my.domain.com/crossdomain.xml из-за неверного типа содержимого «двоичный / октетный поток»? - PullRequest
0 голосов
/ 04 августа 2010

Это проблема ActionScript 3 ...

Я размещаю SWF на my.domainA и запрашиваю jpg от my.domainB (конечно, я обфусцирую доменные имена), используя этот код:

var request:URLRequest = new URLRequest(result.image);
            request.requestHeaders.push(header);
   var context:LoaderContext = new LoaderContext(true, ApplicationDomain.currentDomain, SecurityDomain.currentDomain);
   content = new Loader();
   content.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
   content.load(request, context); 

Домен B содержит междоменный xml-файл, который выглядит следующим образом:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
  <cross-domain-policy>
  <allow-access-from domain="*" />
  </cross-domain-policy>"

Однако я получаю эту ошибку:

"Ошибка: [строго] Игнорирование файла политики в my.domainB.com/crossdomain.xml из-за неверного типа содержимого «Двоичный / октет-поток». См. Www.adobe.com/go/strict_policy_files, чтобы исправить эту проблему. "

Кто-нибудь знает, как я могу решить эту проблему? Это неверный тип контента для файла crosdomain.xml или jpg, который я запрашиваю?

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 05 августа 2010

У меня никогда не было этой проблемы, но сообщение, похоже, указывает на то, что проблема в том, что файл междомена обслуживается с неправильным типом содержимого (двоичный / октетный поток вместо text / xml).Вы можете это проверить?Простым способом было бы загрузить XML с просмотром заголовков ответов с помощью firebug (или другого инструмента).

Кстати, вы загружаете изображение.Возможно, вы знаете об этом, но на всякий случай: если вам не нужно манипулировать данными пикселя изображения, вы можете просто загрузить его без междомена.Только не пытайтесь создать из него изображение BitmapData и не обращайтесь к loader.content.Поместите изображение в список отображения (или удалите его) через объект загрузчика, который является экранным объектом и может действовать как «прокси» для реального изображения.

0 голосов
/ 05 августа 2010

Первым предположением будет то, что ваш междоменный файл отклоняется, а не jpg.

В вашем коде мы не можем видеть содержимое вашей переменной заголовка ... может ли проблема возникнуть из-за способа обработки вашего запроса?

Вы пробовали более простой подход? Что-то вроде: var request: URLRequest = новый URLRequest (result.image); var content: Loader = new Loader (); content.contentLoaderInfo.addEventListener (Event.COMPLETE, onImageLoaded); content.load (запрос, новый LoaderContext (true));

...