ホームページ > ウェブフロントエンド > jsチュートリアル > Jquery Ajaxリクエストファイルのダウンロード操作が失敗する原因の分析と解決策

Jquery Ajaxリクエストファイルのダウンロード操作が失敗する原因の分析と解決策

亚连
リリース: 2018-05-24 14:55:29
オリジナル
2307 人が閲覧しました

jQuery は確かに非常に優れた軽量 JS フレームワークであり、JS アプリケーションを迅速に開発するのに役立ち、JavaScript コードを記述する習慣をある程度変えました。この記事では、Jquery Ajax リクエスト ファイルのダウンロード操作の失敗について説明します。原因分析と解決策、Ajax リクエストが失敗する理由の分析に興味のある友人は、一緒に学びましょう

jQuery は確かに非常に優れた軽量 JS フレームワークであり、JS アプリケーションを迅速に開発するのに役立ちます。 JavaScript コードを書く習慣が変わりました。

これ以上はナンセンスです。まず、失敗の理由を分析しましょう

1. 失敗の理由

通常、要求元のブラウザは応答出力を処理します。ただし、ajax リクエストは「文字タイプ」リクエストのみです。つまり、リクエストされたコンテンツはテキストタイプで保存されます。ファイルはバイナリ形式でダウンロードされますが、返された応答は読み取ることができますが、単純に言うと、js はブラウザのダウンロード処理機構やプログラムを呼び出すことができません。

2. 解決策

1) jquery を使用してフォームを作成し、それを送信してファイルのダウンロードを実装できます。

var form = $("<form>");
form.attr("style","display:none");
form.attr("target","");
form.attr("method","post");
form.attr("action",rootPath + "T_academic_essay/DownloadZipFile.do");
var input1 = $("<input>");
input1.attr("type","hidden");
input1.attr("name","strZipPath");
input1.attr("value",strZipPath);
$("body").append(form);
form.append(input1);
form.submit();
form.remove();
ログイン後にコピー

2) ファイルのダウンロードを実装するには、a タグを直接使用できます。 =”ダウンロード アドレス”> クリックしてダウンロード

3) 非表示の iframe または新しいフォームを使用して解決します。

追記: AJAX リクエスト $.ajax メソッドの使用

AJAX リクエストをより詳細に制御するには、jQuery の $.ajax メソッドを使用します。 AJAX リクエストに対してきめ細かいレベルの制御を実行します。

$.ajax 構文

$.ajax(オプション)パラメータオプション(オブジェクト) オブジェクトのインスタンス、そのプロパティこの操作のパラメータが定義されています。詳細については、以下の表を参照してください。 戻り値XHRインスタンス

オプションの詳細範囲値

name

type

description

url

string

リクエストされた URL アドレス

タイプ

String

使用される HTTP メソッド。通常は POST または GET です。省略した場合、デフォルトは GET

data

Object

プロパティがリクエストにクエリパラメータとして渡されるオブジェクト。 GET リクエストの場合、データはクエリ文字列として渡され、POST リクエストの場合、データはリクエスト本文として渡されます。どちらの場合も、値のエンコードを処理するのは $.ajax() ユーティリティ関数です

dataType

String

応答で返されることが予想されるデータのタイプを識別するために使用されるキーワード。この値は、データがコールバック関数に渡される前に実行される後続の処理 (存在する場合) を決定します。有効な値は次のとおりです:

xml - 応答テキストは XML ドキュメントに解析され、結果の XML DOM がコールバック関数に渡されます。

html - 応答テキストは未処理でコールバック関数に渡されます。返された HTML フラグメント内の

最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート