3

これはおそらく少し長ったらしい話ですが、私と他の何人かの人々を本当に困惑させています.

ファイルのアップロード中に更新される進行状況バーがあります。JS はここにあります(このボディに貼り付けるには多すぎます)。

基本的に、フォーム送信イベントはタイマー ループを開始し、2 秒ごとに $.getJSON() 呼び出しをサーバーに送信して、アップロードのステータスに関する値のペアを取得します。これらの値は、プログレス バーを更新する関数に渡されます。返される JSON 値は、デフォルトで有効な JSON です。

現在、このコードは Firefox とすべての IE (6 も含む) で正常に動作するため、サーバー側のコードは堅牢であると確信していますが、... Safari と Chrome では、進行状況バーがまったく更新されません。 .

アップロードは Apache によって正常に処理され、console.log() のデバッグは、タイマー ループが確実に実行されていることを示しています。ログ。

おっしゃる通り、ちょっとややこしいです。Chrome/Safari/Webkitでこれに遭遇した人はいますか?

4

2 に答える 2

1

エスケープされたアポストロフィに対する Chrome の JSON.parse barfs のようです:

[ "barf\'" ]

エスケープされていないアポストロフィは正常に機能します。

[ "accept'" ]

Webkit ベースのブラウザではアポストロフィを引用符で囲まないことで、同様の問題を回避できました。あなたの場合も似たようなものかもしれません。

于 2011-08-18T09:13:53.213 に答える
1

おそらく、この質問はデバッグに関するいくつかのアイデアを提供することができます. 私は、Safari と Chrome の両方が JS の処理方法にも多少のバグがあることを発見しました。

于 2010-07-18T02:51:59.003 に答える