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 構文
| (オブジェクト) オブジェクトのインスタンス、そのプロパティこの操作のパラメータが定義されています。詳細については、以下の表を参照してください。 ||
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 フラグメント内の 著者別の最新記事
最新の問題
ブックマークを介して純粋な CSS で要素を作成しました。作成されたが表示されない
私のコードは次のとおりです: g=document.createElement('div');g.setAttribute("id","divcont...
から 2024-04-04 17:27:27
0
1
417
Safari/Firefox iOS でフォームデータを送信できない
これは、iOS 上の Safari/Firefox を除くすべてのプラットフォームで動作します: jQuery("#gform_1").one('submit'...
から 2024-04-04 12:53:48
0
1
303
関連トピック
詳細>
|