Небезопасная попытка JavaScript для доступа к фрейму при попытке загрузить файл с помощью ajax - PullRequest
1 голос
/ 09 июня 2010

Моя цель - загрузить файл с помощью ajax-way. Я использую эту библиотеку JavaScript http://valums.com/wp-content/uploads/ajax-upload/demo-jquery.htm

  1. На моей странице есть ссылка типа кнопки «Загрузить» на странице примера.
  2. Когда я щелкаю по нему, открывается диалоговое окно «Открыть файл».
  3. Я выбираю файл, и форма автоматически отправляется.

Это мой код JavaScript.

var upload_btn = $('#upload-opml');
  new AjaxUpload(upload_btn.attr('id'), {
    action: upload_btn.attr('href'),
    name: 'opml',
    onComplete: function (file, response) {
      //
  }
});

Это код сервера в Ruby on Rails.

def upload_opml
    render :text => 'hello'
end

Заголовки, взятые из Firebug.

>> Response headers
Server  nginx/0.7.62
Date    Wed, 09 Jun 2010 19:03:28 GMT
Content-Type    text/html; charset=utf-8
Connection  keep-alive
Etag    "5d41402abc4b2a76b9719d911017c592"
X-Runtime   18
Content-Length  5
Cache-Control   private, max-age=0, must-revalidate
Set-Cookie  _RssWebApp_session=BAh7CDoPc2Vzc2lvbl9pZCIlMzJhMTQ0ZWZhOGM3YmIwODFhZmFmNjkwYTI1YWQ2ZjQ6EF9jc3JmX3Rva2VuIjEvZHVzdm1NOVlMTUF6bEw3cGRFT2I3RzZvcVJZUU42bCtMNS9PVVYrNHdBPToMdXNlcl9pZGkG--13f1950a9530591881404fbfab7b1246f98f0d81; path=/; HttpOnly

>> Request headers
Host    readbox.cz
User-Agent  Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language ru,en-us;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset  windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive  115
Connection  keep-alive
Referer http://readbox.cz/view
Cookie  _RssWebApp_session=BAh7CDoPc2Vzc2lvbl9pZCIlMzJhMTQ0ZWZhOGM3YmIwODFhZmFmNjkwYTI1YWQ2ZjQ6EF9jc3JmX3Rva2VuIjEvZHVzdm1NOVlMTUF6bEw3cGRFT2I3RzZvcVJZUU42bCtMNS9PVVYrNHdBPToMdXNlcl9pZGkG--13f1950a9530591881404fbfab7b1246f98f0d81; login=1; APE_Cookie=%7B%22frequency%22%3A11%7D; show-tsl=0

Но в Firefox я получаю ошибку

!: @ 8? BC http://readbox.cz (document.domain = http://readbox.cz)> B: 070 => 2 @ 07 @ 5H5 = 88 = 0?>; CG5 = 85 A2> 9AB20 HTMLDocument.readyState 87 http://readbox.cz (document.domain = 5 1K; CAB0 => 2; 5 =).
[Прервать эту ошибку] ​​if (doc.readyState && doc.readyState! = 'Complete') {

В Google Chrome

Небезопасная попытка JavaScript получить доступ к фрейму с URL http://readbox.cz/subscriptions/upload_opml из фрейма с URL http://readbox.cz/view#/posts/all. Домены, протоколы и порты должны совпадать.
/javascripts/ajaxupload.js?1276107673:574
Uncaught TypeError: Невозможно прочитать свойство 'readyState' из неопределенного

Домен readbox.info указывает на 127.0.0.1. Это для разработки.

1 Ответ

0 голосов
/ 08 февраля 2011

У меня была та же проблема, и я исправляю ее, редактируя библиотеку ajaxupload, с этим коммитом:

https://github.com/felipelalli/ajax-upload/commit/9307f5eb6ded1ec63eac828a7ef4b8187acb9617

Я уже отправил пулл-запрос автору.

У меня была эта проблема, когда я использовал среду разработчика песочницы (opensocial для Orkut). Я просто проверяю, не является ли «документ» неопределенным. Загрузка работает нормально, но обратный вызов теперь не имеет ответа (ответ не определен).

Я не знаю точно, в чем причина, но я думаю, что это какое-то ограничение среды разработки.

Если вы хотите скачать исправление, пожалуйста, проверьте его: https://github.com/felipelalli/ajax-upload/commits/3.9.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...