この記事は主に jQuery の ajax による blob ファイルのダウンロードに関する情報を紹介するもので、必要な方は参考にしてください。機能的ですが、スムーズです (詳細は忘れてください)。 jQueryが動かないのはなぜですか?具体的なシナリオを確認したところ、jq の ajax コールバックが文字列形式の応答データを確実な方法で解析していることがわかりました。
gg を確認したところ、国内の解決策はこのシナリオで jq を使用するのではなく、手動で XMLHttpRequest を作成することであることがわかりました。この方法は非常に信頼性が高いですが、以前にカプセル化された jq ajax は使用できません。
jq のドキュメントを確認し、jq が提供する jQuery.ajaxSetup() インターフェイスに基づいてデータ型を自分で拡張するつもりでしたが、理解できませんでした。その後、github で Daniel によってパッケージ化された jq プラグインを見つけました。
その後、次のように書くことができます:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>blob demo</title> </head> <body> <img id="img" src="" /> <script src="//cdn.bootcss.com/jquery/2.2.1/jquery.js" charset="utf-8"></script> <script src="jquery-ajax-blob-arraybuffer.js"></script> <script type="text/javascript"> $.ajax({ url: "./face.jpg", type: "get", dataType: "blob", //扩展出了blob类型 }).done(function(data, status, jqXHR){ var reader = new window.FileReader(); reader.readAsDataURL(data); reader.onloadend = function() { document.getElementById("img").src=reader.result; } }).fail(function(jqXHR, textStatus) { console.warn(textStatus); }); </script> </body> </html>
ただし、プラグインのソースコードから判断すると、Ajax を送信するための XMLHttpRequest オブジェクトも手動で構築されますが、互換性が問題になる可能性があります。さらに詳しく知りたい場合は、ここをお読みください。
上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
ネイティブ JS の作成 Ajax リクエスト関数関数 ajaxFileUpload の使用方法の概要ファイルの非同期アップロード以上がjQueryのajaxを使用してBLOBファイルをダウンロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。