1

私の目標は、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/view#/posts/all のフレームから URL http://readbox.cz/subscriptions/upload_opml のフレームにアクセスしようとします。ドメイン、プロトコル、およびポートが一致する必要があります。 /javascripts/ajaxupload.js?1276107673:574 Uncaught TypeError: 未定義のプロパティ 'readyState' を読み取れません

ドメイン readbox.info は 127.0.0.1 を指しています。開発用です。

4

1 に答える 1

0

私は同じ問題を抱えていたので、このコミットでajaxuploadライブラリを編集して修正しました:

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

私はすでに作者にプルリクエストを送信しました。

サンドボックス開発者環境 (orkut の opensocial) を使用していたときに、この問題が発生しました。「doc」が未定義かどうかを今すぐ確認します。アップロードは正常に機能しますが、コールバックには応答がありません (応答は未定義です)。

何が原因なのか正確にはわかりませんが、開発環境の何らかの制限だと思います。

修正をダウンロードしたい場合は、https ://github.com/felipelalli/ajax-upload/commits/3.9.1 を確認してください。

于 2011-02-08T00:11:30.223 に答える