私は、ファイルを返すか、エラーが発生した場合はJSON応答を返すurlを持っています。要求が受け入れられると、ファイルで応答し、ユーザーはダウンロードを促されます(その状況で予想されるように)。リクエストに問題がある場合、レスポンスはJSONオブジェクトであり、javascript経由でさらに処理する必要があります。ファイルまたはJSON応答を返すURL上のAJAX?
リクエストはjavascript(AJAX、新しいタブで開く、iframeを生成したものなど)を介して行われます。 javascriptを使用して同じURLからの両方の応答を処理するにはどうすればよいですか?
私は(まだ働いて持っていない)いじり現在だ戦略は次のとおりです。
- は
error
イベントを設定しIFRAME - にフォームを注入するのiframe
- を生成しますハンドラのiframeの
- フォームのトリガーの投稿(私は
Content-Disposition: attachment
を使用して保存ダイアログを強制的に使用できるように応答ヘッダーを制御しています) error
イベント・ハンドラがトリガされる場合は、JSONレスポンス
のためのiframeをスクラップはerror
イベントは、アイフレームによって発射されていないとiframeがあるときload
イベントは特定のブラウザで焼成されていないが判明します保存ダイアログを表示するファイルを指しています。
エラーが発生した場合は、成功のための型応答に関係なく、Function(jqXHR jqXHR、String textStatus、String errorThrown)を取得します。問題ではないはずです –
@BryanDellingerそれは本当です。ただし、成功すると、ユーザーは提供されたファイルをダウンロードするように指示する必要があります。私が知りたいのは、同じリクエストの可能なエラー応答を捕捉している間に、(通常のダウンロードでは)保存するためにユーザーに応答を提出する方法です。 – Ouroborus
これは、html5のダウンロード属性を使用して示唆しているhttp://stackoverflow.com/questions/3077242/force-download-a-pdf-link-using-javascript-ajax-jqueryここに似た質問があります。 –