Я использую 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>
В каком браузере вы тестируете? Является ли полифония ногами или вы используете собственный объект XHR? – Quentin
Браузер Opera 20, я заставляю мокси использовать Flash, установив 'moxie.Runtime.order = 'flash, html5';'. Flash определенно загружается, так как я использую moxie для сборщика файлов. –