私は AJAX を初めて使用しますが、概要として、アップロードおよびダウンロードできる形式を知りたいと思います。JSON または XML に制限されていますか、それとも MP3 や UTF-8 HTML などのバイナリ タイプを送信できますか。そして最後に、データを完全に制御できますか、バイト配列のようなバイトごとに制御できますか、それとも送受信される文字列のみですか。
7 に答える
ajax について話している場合、javascript について話しているのでしょうか? そして、XMLHTTPRequest については?
http リクエストのみである XMLHttpRequest は、すべてを転送できます。しかし、JavaScript にはバイト配列がありません。文字列、数字などのみ。ajax 呼び出しから得られるものはすべてテキスト (responseText) です。それは XML に解析される可能性があります (これにより、reponseXML が得られます)。特別なエンコーディングは、http トランスポートの問題である必要があります。
バイナリーは ajax 依存ではなく、javascript 依存です。文字列が javascript 内でバイト データを配信するための奇妙なエンコーディングがいくつかありますが (特に画像の場合)、一般的な解決策ではありません。
HTML は問題ではなく、それが最も顕著な使用例です。このタイプのリクエストから、HTML 文字列が配信され、HTML を解析する innerHTML ごとに DOM のノードに追加されます。
データは HTTP 経由で転送されるため、何らかのエンコーディングを使用していることを確認する必要があります。最も一般的なものの 1 つは base64 エンコーディングです。詳細については、http ://www.webtoolkit.info/javascript-base64.html を参照してください。
方法論は、送信したいデータを base64 エンコードしてから、サーバー (またはクライアント) でデータを base64 デコードし、意図したとおりに元のデータを使用することです。
AJAX は、JavaScript 呼び出しを使用して HTTP 経由で非同期にデータを転送していることを意味します。したがって、スクリプトは XmlHttpRequest() オブジェクトを使用して「通常の」HTTP リクエストを作成します。ただし、名前が示すように、サーバーから返されたデータを使用してクライアント側で何らかのアクションを実行する必要があるため、実際にはテキストベースのデータ形式にのみ適しています (常にではありませんが、XmlHttpRequests を単にサーバー上の何かを更新します)。
余談ですが、とにかくバイナリ データを送信することが適切なアプリケーションを見たことがありません。
ほとんどの場合、人々は POST または GET を使用してサーバーにデータを送信することを選択します (これは基本的に、HTTP 固有の名前と値のペアを転送する方法です)。階層構造などのより複雑なデータを送信するには、何らかの方法でエンコードする必要があります。XML ドキュメントは、JavaScript ごとにネイティブに作成し、サーバーに送信して、必要なデータ型に解析することができます。しかし、XML は少し面倒な場合があるため、多くの開発者は、生成と解析が容易な JSON エンコード データを代わりに使用しています。
サーバーが送り返すものは、同様に恣意的です。通常、受信データを処理する Javascript でコールバック関数を指定します。繰り返しますが、一般的な選択肢は XML と JSON で、それぞれドキュメント オブジェクトまたは配列構造に簡単に解析されます。プレーン テキストやその他のパッケージを送信することもできますが、使用可能なデータを自分で抽出する必要があることに注意してください。場合によっては、実際の HTML フラグメントをクライアントに送信して、ページ上の何かを直接更新することも有益な場合があります。
手始めに、JQuery をご覧になることをお勧めします。これは非常に軽量なフレームワークであり、互換性の悪さの多くを抽象化し、AJAX リクエストを非常に適切に記述できるようにします。
文字列またはバイトの任意のタイプのデータを転送できます
なんでも送っていいんですけど、届いたらどう処理するかが問題かもしれませんね(;_;)
標準 HTML は、おそらく最も一般的なタイプの ajax コンテンツであり、文字エンコーディングも選択できますが、常に 1 つのタイプのエンコーディングに固執するのが最善です。
DUI.Stream と MXHRというタイトルのDigg the Blogエントリがあり、彼らが「Multipart XMLHttpRequests」と呼んでいるものを紹介しています。今はアルファコードですが、画像を扱うデモがあります。
HTTP 経由で送信できるものは何でも移動できます。ページの読み込み元と同じドメインへの呼び出しには制限がありますが、転送の内容には制限がありません。GET または POST トランザクションも実行できます。