2013-10-24 3 views
0

Некоторая помощь в следующем.Не получено сообщение vaild из загруженного iframe для iframe

Hi Ray, теперь я получаю ответ правильно для IE7/8. Однако он возвращается немедленно, когда firefox тратит свое время на загрузку с помощью процентного бара, чтобы указать это. Я волнуюсь, потому что кто-то может загрузить, а затем посмотреть, как это делается, а затем сохранить и видео не будет. Любые предложения относительно того, почему IE7/8 немедленно ответит на ответ. Надеюсь, что имеет смысл

Благодарим за внимание, однако все еще не сработало. Ошибка загрузки. Я передаю ответ назад как text/html или text/plain

также на неполной функции является то, что правильный журнал ответов?

uploader = $jq('#fine-uploader').fineUploader({ 
     debug: true, 
     request: { 
      //endpoint: 'http://video-api.shannons.com.au/api/upload/upload.php', 
      endpoint: 'http://crowleyroofing.radiusmedia.com.au/uploader-test.php', 
      params: { 
       ClientToken: token, 
       ApplicationResponse: 'FineUploader' 
      }, 
      inputName: 'FileUpload' 
     }, 
     cors: { 
      expected: true 
     }, 
     multiple: false, 
     validation: { 
      allowedExtensions : ['mp4','mov','ogm','ogv','ogx','webm','flv','avi','m4v','mkv','wmv'], 
      sizeLimit : 52428800 
     }, 
     showMessage: function(message) { 
      $('.video-error').append('<div class="alert alert-error">' + message + '</div>'); 
     } 
    }) 
    .on('submit', function(event, id) { 
     $('.qq-upload-button').hide(); 
     $('.qq-upload-list').show(); 
    }) 
    .on('complete', function(event, id, name, response) { 
     console.log(response); 
     //$jq('.qq-upload-status-text').html(response); 

     /*$jq('#event-post-form').prepend('<input id="mediatoken" type="hidden" name="mediatoken" value="' + response.Data.MediaId + '">'); 
     var size = $('.qq-upload-size').text(); 
     var html = '' + name + ' ' + size + ' <span class="icon"><em class="club-tick"></em></span>'; 
     $jq('.qq-upload-status-text').html(html);*/ 
    }); 

PHP здесь

<?php 

function gen_uuid() { 
    return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', 
     // 32 bits for "time_low" 
     mt_rand(0, 0xffff), mt_rand(0, 0xffff), 

     // 16 bits for "time_mid" 
     mt_rand(0, 0xffff), 

     // 16 bits for "time_hi_and_version", 
     // four most significant bits holds version number 4 
     mt_rand(0, 0x0fff) | 0x4000, 

     // 16 bits, 8 bits for "clk_seq_hi_res", 
     // 8 bits for "clk_seq_low", 
     // two most significant bits holds zero and one for variant DCE1.1 
     mt_rand(0, 0x3fff) | 0x8000, 

     // 48 bits for "node" 
     mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff) 
    ); 
} 

if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']!="XMLHttpRequest")) { 
    header('Access-Control-Allow-Origin: *'); 
    header('Access-Control-Allow-Headers: origin, x-requested-with, content-type, cache-control'); 
    header("Content-Type: text/html"); 

    $data = array("success" => true, "uuid" => gen_uuid()); 
    $json = json_encode($data); 
    echo "$json <script src=\"http://crowleyroofing.radiusmedia.com.au/iframe.xss.response-3.9.0-3.js\"></script>"; 
} 

?>

Это ответ я вернусь из IE9/8

[FineUploader 3.9.0-3] получил 1 файлы или входы ,

[FineUploader 3.9.0-3] отправляете запрос загрузки на 0

[FineUploader 3.9.0-3] Received IFrame событие загрузки для CORS загрузить запрос (имя IFrame 0_89b9b578-b08e-4221-be2b-a1bac04792c8)

[FineUploader 3.9.0-3] Получили следующее окно с сообщением: '{ "успех": правда, "UUID": "9da17ad5-ad6a-40CD-81b5-226e837db45b"}'

[FineUploader 3,9 .0-3] Нет действительного сообщения, полученного от загруженного iframe для имени iframe 0_89b9b578-b08e-4221-be2b-a1bac04792c8

[FineUploader 3.9.0-3] iframe загружен

ответ

0

Вы не возвращаете правильный ответ для загрузок с перекрестным началом, инициированных IE9 или старше. As the documentation states, вы должны вернуть ответ text/html, содержащий тег сценария, указывающий на файл iframe.xss.response.js, и действительную строку JSON, которая содержит свойство success со значением true И a uuid свойство со значением, равным UUID ассоциированного файл.

Ваш код ответа должен выглядеть следующим образом:

$data = array("success" => true, "uuid" => "9da17ad5-ad6a-40cd-81b5-226e837db45b"); 
$json = json_encode($data); 
echo "$json <script src=\"http://crowleyroofing.radiusmedia.com.au/iframe.xss.response-3.9.0-3.js\"></script>"; 

Ваш нужно будет заменить значение uuid собственности со значением параметра qquuid Fine Uploader передает с запросом на загрузку.

Кроме того, обратите внимание на следующие вопросы, не связанные с вашим кодом:

  • Там нет необходимости, чтобы включить опцию cors.allowXdr. Это используется, только если у вас есть функция удаления файлов, включенная в средах с перекрестным происхождением.
  • Опция debug по умолчанию равна false, поэтому вам не нужно явно устанавливать это.
  • Опция cors.sendCredentials по умолчанию равна false, поэтому вам не нужно явно устанавливать это.
+0

Hi Ray, я обновил свой вопрос наверху, все еще не работая для меня. – user1015671

+0

Ваш код по-прежнему выглядит не корректно. Если вы используете этот точный код, это не сработает. Как я уже упоминал, вы должны включить UUID связанного файла с ответом. У вас есть жестко закодированный UUID в вашем ответе выше. После того, как вы исправите это, если он все еще не работает, вам нужно будет включить все сообщения журнала консоли (с 'debug' установленным значением' true') и данные запроса/ответа на вкладку сети IE9. –

+0

Hi Ray, Как установить UUID в php? – user1015671

Смежные вопросы