2014-04-22 4 views
0

Я использую moxie в качестве полифайла XHR2, чтобы выпустить загрузку файла POST с использованием crossdomain, используя FormData для создания многостраничного запроса, содержащего объект File, из FileInput.Flash crossdomain multipart POST не работает?

Использование среды выполнения HTML5, запрос успешно и файл загружен. Однако при использовании Flash runtime успешно запрашивается crossdomain.xml, но запрос вскоре достигает readyState 4 с status из 0, что говорит о том, что запрос был отменен, поскольку это был недопустимый междоменный запрос.

crossdomain.xml spec ничего не говорит о методах запроса. Быстрый поиск на moxie Github появляется this issue, который, кажется, был разрешен, хотя проблема по-прежнему открыта. В отличие от этой проблемы, я не вижу любой запрос после crossdomain.xml.

код для отправки запроса:

var xhr = new moxie.XMLHttpRequest(); 
xhr.open('POST', url, true); 
xhr.bind('load', function() { 
    if(this.status === 200) { 
    // yay! 
    } else { 
    // boo! 
    } 
}); 

var form = new moxie.FormData(); 
form.append('file', file); // file is a moxie.File from a FileInput 

xhr.send(form); 

Мой crossdomain.xml является следующее:

<?xml version="1.0"?> 
<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd"> 
    <allow-access-from domain="*"/> 
</cross-domain-policy> 
+0

В каком браузере вы тестируете? Является ли полифония ногами или вы используете собственный объект XHR? – Quentin

+0

Браузер Opera 20, я заставляю мокси использовать Flash, установив 'moxie.Runtime.order = 'flash, html5';'. Flash определенно загружается, так как я использую moxie для сборщика файлов. –

ответ

0

По the AS3 documentation:

В Flash Player 10 и более поздних если вы используете многостраничный Content-Type (например, «multipart/form-data»), который содержит загрузку (обозначается параметром «filename» эр в «Content-Disposition» заголовка в теле POST), операция POST подлежит правилам безопасности для загрузок:

  • Операция POST должна быть выполнена в ответ на действие, инициированное пользователем, таких как щелчок мышью или нажатие клавиши.
  • Если операция POST является междоменной (цель POST не находится на том же сервере, что и файл SWF, отправляющий запрос POST), целевой сервер должен предоставить файл политики URL, который разрешает междоменный доступ.

Причина мой запрос не удается является первой пули, так как мой POST не делается «ответ на действие, инициированное пользователем, например, как щелчок мыши».

Достаточно то, как мокси ожидает от меня этого. Я не уверен, так как все их (скудные) документы указывают, что возможны кросс-платформенные множественные закачки.

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

  • Нет связанных вопросов^_^