Загрузка ошибки безопасности Internet Explorer

я использую uploadify 2.1.4, http://www.uploadify.com

локальный js:

jQuery('#file_upload').uploadify({
   'buttonImg' : 'public/uploadify/newfile.png',
   'uploader' : 'http://remoteserver/uploadify.swf',
   'scriptAccess' : 'always', ...

на удаленном сервере у меня есть этот кросс-домен:

<?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="all"/>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

Я редактирую uploadify.fla и помещаю этот код:

import flash.system.Security;
...
Security.allowDomain("*");

и так сгенерируйте новый uploadify.swf

Проблема в том, что работа с Firefox, Safari, Chrome e Opera, но в IE (v7, v8, v9 (я не тестировал v6)) по-прежнему получает сообщение об ошибке: Ошибка безопасности (в .uploadifyQueueItem)


person Maycon    schedule 27.07.2011    source источник
comment
Я думаю, вы действительно смущены тем, чего вы пытаетесь достичь. Почему бы вам не опубликовать полный код ошибки, чтобы мы могли точно определить, в чем проблема.   -  person The_asMan    schedule 27.07.2011


Ответы (4)


Я не уверен, зачем вам использовать jquery для загрузки на сервер, когда вы можете сделать это прямо из флэш-памяти (поскольку вы все равно уже используете флэш-память). Вот как я это делаю, и у меня нет проблем в IE. Извините, я не могу ответить на ваш вопрос напрямую, я недостаточно знаю JQuery.

 var request:URLRequest = new URLRequest( "http://remoteserver/uploadify.swf" );
 request.data = myjpeg;
 request.contentType = "image/jpeg";
 request.method = URLRequestMethod.POST;
 var loader:URLLoader = new URLLoader(  );
 loader.addEventListener( Event.COMPLETE, handleResponse );
 loader.load( request );
 function handleResponse (evt:Event) { 
 trace(evt.target.data); //print response from server if there is one
 }
person Stefan    schedule 27.07.2011

Я решил эту проблему:

in my js:

jQuery('#file_upload').uploadify({
  script: '/upload',
  uploader: 'http://domain.com/uploadify.swf'

Но, когда печатается (requestURL.url) в uploadify.swf, ставится: "http://www.domain.com/upload"; поэтому flash вызывает ошибку безопасности, потому что "http://www.dom..." != "http://dom..."

person Maycon    schedule 15.08.2011

Я не следил за тем, как вы исправили проблему безопасности IE при загрузке файлов с одного сервера на другой.

Мой файл uploadify.swf размещен на сервере 1, а php-скрипт загрузки — на сервере 2. В файле Crossdomain.xml на сервере 2 есть директивы, разрешающие загрузку.

Отлично работает в FF, Chrome, Safari, но IE выдает блокировку безопасности.

Спасибо, Мелвин.

person Melwyn Furtado    schedule 18.03.2012

Привет, я получил решение от другого вопроса. динамическая настройка свойств в uploadify

Добавьте свойство ниже, чтобы избежать исключения безопасности в IE8.

  'method' : 'GET',

Это работает для меня сейчас. Мой общий код выглядит так, как показано ниже

$('#file_uploads').uploadify({
        'onUploadSuccess': function (file, data, response) {
            $scope.uploadedFileList.push(JSON.parse(data)[0].files);
            $scope.$apply();
        },
        'onQueueComplete': function (queueData) {

        },
        'onDialogClose': function (queueData) {
            //            console.log(queueData);
            if (queueData.filesSelected > 5 || (queueData.filesSelected + $scope.uploadedFileList.length) > 5) {
                bootbox.alert({
                    title: CommonUtility.errorLabel,
                    message: "Maximum 5 files allowed.",
                    callback: function () {

                    }
                });
                $('#file_uploads').data('uploadify').queueData = "";
            } else if (queueData.queueSize > 5000000) {
                bootbox.alert({
                    title: CommonUtility.errorLabel,
                    message: "Total file size should not exceed 5 MB",
                    callback: function () {

                    }
                });
            } else
                $('#file_uploads').uploadify('upload', '*');
        },
        'auto': false,
        'fileTypeExts': '*.gif; *.jpg; *.png; *.doc; *.pdf; *.xls; *.zip;',
        'scriptAccess': 'always',
        'swf': 'assets/css/uploadify.swf',
        'uploader': 'uploadfile',
        'method': 'GET',
        'buttonText': 'Browse',
    });
person Mohammed mansoor    schedule 04.02.2016