問題タブ [xmlhttprequest-level2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3571 参照

javascript - JavaScriptで2つのブロブを比較するには?

以下のコードを使用して、JavaScript で 2 つの BLOB ファイルを読み込みます。

正確に同じかどうかを比較したい。

(blob1 === blob2) は、報告された各 BLOB のサイズが 574 バイトであっても、false を返します。私は何を間違っていますか?

0 投票する
1 に答える
142 参照

javascript - XMLHttpRequest レベル 2 イベント: readyState と同等

XMLHttpRequest レベル 2 では、1 つのイベントよりも多くの意味のあるイベントが追加されていonreadystatechangeます。

これらのイベントのいくつかとreadyState値の間に対応はありますか?

私の知る限り:

私は 3 に相当するものを見つけていませんが、とにかく少しあいまいです。

0 投票する
1 に答える
915 参照

javascript - XMLHttpRequest のアップロードが Firefox で正しく失敗しないのはなぜですか?

を使用して、ユーザーが 1 つ以上のファイルをアップロードできるファイル アップローダーを実装していますXMLHttpRequest。アップロードの進行状況に関する視覚的なフィードバックをユーザーに提供できるようにする必要があるため、使用していません。fetch

私が抱えている問題は、アップロードが完了する前にサーバーがアップロードの処理を停止したときに発生します (たとえば、413 Payload Too Largeアップロードされているファイルが大きすぎる場合、エラーで接続を閉じます)。Safari や Chrome を使用しているときにこのようなエラーが発生すると、意図したとおりにアップロードが中断されます。

ただし、Firefox では、これを無視しているように見え、停止する前にアップロードを数回再試行します。

私のコードは次のとおりです。

Safari と Chrome で、サーバーが受け入れるには大きすぎるファイルをアップロードすると、サーバーは 413 ステータス応答で接続を閉じます。イベントは次の順序で発生します。

私の期待通りに。Firefox では、イベントは次の順序で発生します。

ドキュメントに示されているように、Firefox はイベントの前に、、、、またはイベントloaderror発生abortさせないようです。timeoutloadendXMLHttpRequest.upload

各ブラウザの開発ツールのネットワーク タブを見ると、Chrome と Safari の両方がサーバーが 413 で応答したことを認識していますが、Firefox は応答ステータスを認識していません (その後でもloadend)。

バージョンは Firefox Quantum 62.0b3 (64 ビット) です。サファリは11.0.1です。Chrome は 67.0.3396.99 です。

問題は、アップロード中にサーバー エラーが発生したことを Firefox が認識できず、アップロードをキャンセルできないのはなぜですか? これを解決する方法はありますか?