問題タブ [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 投票する
11 に答える
493794 参照

javascript - http://localhost CORS オリジンが機能しないのはなぜですか?

サーバー(nginx/node.js)に適切なヘッダーを設定しても、このCORSの問題に悩まされています。

Chrome ネットワーク ペインで確認できます -> 応答ヘッダー:

これでうまくいくはずです。

テストに使用するコードは次のとおりです。

私は得る

XMLHttpRequest はhttp://stackoverflow.com/を読み込めません。オリジンhttp://localhostは Access-Control-Allow-Origin で許可されていません。

サーバー構成ではなく、クライアントスクリプトに問題があると思われます...

0 投票する
2 に答える
662 参照

javascript - すべての XHR2 送信呼び出しが終了するのを待つ方法

プログレスバーも表示しながら、ブラウザからサーバーに複数のファイルをアップロードするコードをいくつか実行しました。XHR2 送信呼び出しは非同期です。問題は、すべての XHR2 送信呼び出しが終了した後で、いくつかの関数を呼び出したいことです。

これは私のコードの非常に単純化されたスニペットです:

「onreadystatechange: ファイルがアップロードされました。」コンソールに出力され、ファイルの 1 つがアップロードされていることがわかります。しかし、「すべてのファイルがアップロードされました」というコードを書くことができません。

助けてくれてありがとう。 jqueryを使用したソリューションがある場合に備えて、jqueryも使用しています。

0 投票する
2 に答える
1302 参照

javascript - Opera で Javascript から 8 ビットのバイナリ データにアクセスするにはどうすればよいですか?

この質問は、 IE に関するこの StackOverflow の質問を Opera 12 ブラウザーに拡張したものです。

根本的な問題は、kmz (圧縮された kml) ファイルを処理する geoxml3の問題です。

Opera 12 で失敗する例

バイナリ データは、変更されたバージョンの ZipFile.complete.js でTypedArrays を使用して処理されています。

バイナリ ファイルが転送された後、Uint8Array は Opera 12 で正しく設定されず、あたかもデータが 16 ビット要素としてインポートされているかのようになります。

リクエストは次のように構成されます。

返される値は次のように処理されます。

最初の 8 バイトは、Opera 12 では次のように入力されます。

0x004B0050; 4915280 の 10 進値を与える

ただし、次のようにする必要があります。

0x4034B50; 67324752 の 10 進数値。

これは、Firefox、Chrome、および IE で正しく機能します (回避策あり)。

Uint8Array を正しく設定するように Opera 12 を説得する方法を知っている人はいますか? または、それが機能するようにするための回避策(16ビットバイトの配列を8ビットバイトの配列に変換し、不要な上位8ビットをできるだけ効率的に破棄する方法)?これは Opera 12 の TypedArray/XmlHttpRequest の最近の実装における既知のバグですか?

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

php - xmlHTTPrequest send() の後に PHP $_POST から ArrayBuffer にアクセスする

私は XMLHttpRequest 2 の授業に従っています:

https://developer.mozilla.org/en/DOM/XMLHttpRequest/Sending_and_Recoming_Binary_Data および http://www.html5rocks.com/en/tutorials/file/xhr2/#toc-send-arraybuffer

これらはクライアント側の優れたチュートリアルであり、これが私のスクリプトからの実際の抜粋です。

// 画像データでクールなことをする

ここまでは順調で、クライアントとサーバーの両方のコントロール パネルから、大量のデータが転送されていることがわかります。

ここに私の問題があります:サーバーでPHPを使用してArrayBufferにアクセスするにはどうすればよいですか? HTML フォームからパラメーターを渡す $_POST スーパーグローバルに慣れているので、配列としてアクセスできますが、このバイナリ配列にアクセスして MySQL データベースに貼り付ける方法についての参照が見つかりません。

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

http - HTTP範囲リクエストの最適な長さは?

複数の HTTP 範囲要求によって大きなファイルを取得する JavaScript ダウンローダーがあります。

終わりがある間

ファイル内の特定のオフセットを取得する必要があるため (複数の HTTP サーバーからのダウンロードを考えてください)、範囲要求は必須です。ダウンローダがこの方法を使用して ~100MB のファイルをダウンロードしようとしている場合、良好なスループットを得るための最適な長さはどれくらいですか?

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

php - XMLHttprequest でファイルをアップロードする - multipart/form-data に境界がありません

XMLHttprequest でファイルをアップロードしています。ファイルをアップロードするJS関数は次のとおりです。

サーバー側では、upload.phpで次のようにファイルを読み取ります。

PHP 警告が表示されることを除いて、すべて正常に動作します。

Missing boundary in multipart/form-data POST data in Unknown on line 0.

この行を削除すると xhr.setRequestHeader("Content-Type", "multipart/form-data");、警告が消えます。

ここで何が問題になるはずですか?

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

ajax - Firefox は、*download* が完了すると、XMLHttpRequest アップロードの load および loadend イベントのみを発生させます

他の誰かがこれを確認できますか、それとも私は何か間違っていますか?

Firefox では、XMLHttpRequest アップロード イベント load および loadend は、アップロードが完了したときではなく、ダウンロードが完了したときにのみ発生します。また、アップロードの最後に進行状況イベントが発生しません。

この例を参照してください: http://geo.kitten-x.com/testupload.html

プログレス バーが 100% に達し、load イベントと loadend イベントが発生し、スクリプトが終了すると結果がポストされるという点で、Chrome は正しく動作すると思います。Firefox では、load イベントと loadend イベントは、スクリプトが終了した後にのみ発生します。

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

ios - iOS 6 (iPhone/iPad) NTLM/Windows 認証による画像アップロード "Request Body Stream Exhausted"

私は、iOS 6 で XMLHttpRequest POST を使用して画像をアップロードできるように取り組んでいます。これはデスクトップおよび Android の Web ブラウザーで動作しますが、iOS 6 では、投稿先のページで「Request Body Stream Exhausted」というエラーが発生します。(Safari Web インスペクターで iOS シミュレーターを使用)。

ページの基本的なコードは次のとおりです。

他のブラウザーでこれを行うと、ハンドラーは正しく戻り、ファイルをアップロードします。ただし、iOS では、ashx ページに「リクエスト ボディ ストリームが使い果たされました」というエラーが表示されます。

インスペクターのスクリーンショットは次のとおりです。

リクエスト ボディ ストリームが使い果たされました

何か案は?

更新:この問題は、IIS でアプリケーションに対して NTLM/Windows 認証が有効になっている場合にのみ発生します。フォームまたは匿名認証を使用すると、アップロードは正常に機能します。

ありがとう、

ジョン

0 投票する
2 に答える
829 参照

websocket - 私のシナリオに基づいて、WebSocketまたはXmlHttpRequest、あるいはその両方を使用する必要がありますか?

モンキー言語(クロスプラットフォームトランスレーター)でターン制のゲームを作ろうとしています。ゲームはHTML5プラットフォームを使用します。このゲームはオンラインでプレイされ、プレイヤーはお互いに対戦できます(2対2の対戦の場合もあります)。私は最近たくさんの解決策を検討しました、そして私はそれらのうちの2つに立ち寄りました。古き良きXmlHttpRequestと新しいWebSocketは、かなり良いW3Cからの推奨状態にあるようです。私が興味を持ったもう1つのテクノロジーは、プッシュサービスであるPubNubです。このサービスは実際に接続されているすべてのクライアントにメッセージをプッシュし、非常に高速です。しかし、これは後でコストがかかり、送信するメッセージの数に制限があります。つまり、1000の接続と100万のメッセージで月額15ドルかかり、さらに100万のメッセージで+ 1ドルかかり、続行します。実際には3人の俳優がいます サルで書かれたクライアント(HTML5)C#で書かれたサーバー。メッセージをブロードキャストするための言語とPubNubをよく知っているからです。クライアントはサーバーにのみリクエストを送信し、サーバーはメッセージをPubNubに中継し、PubNubはクライアントに送り返します。私はそれらの事実を考慮して頭の中で2つの計画を持っていました:

  1. ゲームはHTML5で書かれていますが、他の言語(例としてAndroid)に移植することもできます。WebSocketを使用している場合、これを処理するために追加のライブラリを取得する必要があり、それにもっと時間を費やしたくないので、それを行うことはできません。だから私は今のところHTML5に焦点を合わせますが、それを移植することは常にオプションです。
  2. ターン制のゲームなので、XmlHttpRequestはこのタスクに適しているようですが、どの時点でですか?1000を超える接続があり、リクエストを送信している場合、それをサポートできますか?各ターンは一意のリクエストですが、チャットメッセージもリクエストとプライベートメッセージであり、プレーヤーデータも取得します(ゲームに参加する前に)。WebSocketよりも優れている点は、Http Getの作成が簡単で、多くのプラットフォームで簡単にサポートされることです。だから、これを選択すれば、明らかにAndroidルートに行くことができます。
  3. ここに記載されているテクノロジー以外のテクノロジーに多くの時間を投資したくありません。
  4. PubNubは最終的にはお金がかかりますが、メッセージをプッシュするのに非常に効率的であるため、PubNubを使用しないとリスクが高くなり、コードをリレーするメッセージを自分で実行する必要があります。

だからここに私の4つの計画。

  1. WebSocketを使用して、AlchemyをC#用のWebSocketServerとして使用します。これは、テストしてすばらしい動作をし、メッセージを中継するためのバックエンドにPubNubアクターがあります。
  2. XmlHttpRequestsを使用して、リクエストゲートウェイに単純なWebAPIを使用します。
  3. 両方で行きます。選択するテクノロジーに応じてクライアントを独立させます。フォールバックとしてXmlHttpRequestを使用し、サーバーが両方の接続をサポートするようにします。PubNubは、ここでも中継アクターであり、すべてを通信させる必要があります。
  4. WebSocketを使用しますが、PubNubは使用しません。

それで、あなたは私に行くように勧めるルートとその理由を教えてください。

ありがとう!

0 投票する
2 に答える
800 参照

java - XmlHttpRequestレベル2:応答は何も返しません

私はこの問題を抱えています、私は昨日すでにこの質問をしました、しかし私は何の答えもありませんでした... :(

私はクライアント側にこのコードを持っています:

これまでのところ、それは公平に思えます。サーブレットには、次のコードがあります。

問題は、

私が期待するものを印刷しますが、

何も返しません。実際、アラートは空です。

誰かが私に理由を説明できますか?