У меня есть подстановочные субдомены, например:
.example.com переходит к example.com/app/
Кажется, что uploadify хорошо работает, если я использую каталог вместо субдомена. Но когда я использую субдомен и нажимаю на изображение загрузки, ничего не происходит. Это, кажется, загружает прекрасную флэш-память и никакие ошибки JS, но когда я нажимаю на кнопку, я не получаю файловый браузер. Возможно, способ, которым я делаю подстановочные домены, влияет на него, не уверенный. вот мой htaccess:
RewriteCond %{HTTP_HOST} ^(.*).example.com
RewriteCond %{HTTP_HOST} !^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/app/%1/$1 [P]
Я также использую полный путь для вызова js и флеш-файлов. Они не расположены под субдоменом, но под корневым доменом. Таким образом, я просто использую весь путь URL, вот пример моего js:
$("#fileInput").uploadify({
'uploader' : 'http://example.com/js/upload/_scripts/uploadify.swf',
'script' : 'http://sub.example.com/discuss/upload/do_upload/' + session_id,
'cancelImg' : 'http://example.com/images/icons/del.png',
'folder' : '/files/',
'multi' : true,
'auto' : true,
'queueSizeLimit' : 10,
'buttonImg' : 'http://example.com/images/attachafile2.jpg',
'width' : 91,
'height' : 23,
'wmode' : 'transparent'
});
uploadify использует флэш-память для выполнения загрузки. Flash подчиняется той же политике происхождения, что и собственный браузер, за исключением того, что в нем есть лазейка.
Flash будет искать файл с именем crossdomain.xml в корне веб-сервера. Этот XML-файл определяет, какие другие домены могут получить доступ к его содержимому через флэш-память.
Например, вот кроссдоменный файл twitter
В вашем случае может быть достаточно создать или изменить этот файл, чтобы принимать соединения от различных вовлеченных доменов.
Удачи!
На основании статьи в Википедии о политике одинакового происхождения это звучит так, как будто это не сработает, потому что sub.domain.com != domain.com в том, что касается JavaScript. При этом похоже, что пока JavaScript верит, что запрашивает тот же домен, все должно быть просто замечательно.
Я думаю, что если вы скажете Uploadify публиковать на оригинальный непереписанный путь и позволите Apache обрабатывать перезапись автоматически, то JavaScript не будет думать, что он нарушает политику одинакового происхождения.
Например: Если вы переписали domain.com/path/to/foo
на foo.domain.com
, а затем в своем JavaScript запросили /path/to/foo
, Apache переведет запрос соответствующим образом, и JavaScript не заметит разницы.