私はサーバー上でレポートを実行できるWebアプリケーションを持っています。レポートは一定の時間サーバーに保存されます。レポートURLを送信すると、サーバーはレポートを返信(XLS形式)するか、単純な「ファイルが見つかりません」というテキストを返します(エラーなし) 次回ユーザーがログインすると、レポートはまだそこにあるか、または再度実行する必要があります。私は単純にJQuery.ajaxを使ってバックグラウンドでURLを呼び出し、私が得る応答のタイプをチェックすることができます。しかし、これはレポートが完全にダウンロードされたことを意味し、潜在的なレポートが100件もない場合は10件あります。 私はコンテンツをダウンロードすることなく、私が得るレスポンスのタイプを得ることができるようにサーバーを照会する方法はありますか(すなわち、XLSまたはバイナリー - >レポートが利用可能、テキスト - >レポートが欠落しています) ? 私はサーバーの動作を制御できないことに注意してください。 ありがとうJavascript。コンテンツをダウンロードせずにURLからの応答のタイプを確認する
0
A
答えて
0
リクエストヘッダーは、送信されるファイルの種類が含まれている可能性があるため、確認するのが良い場所です。 (ダウンロードを引き起こすものである)、本体なしで、唯一のリクエストのヘッダを取得するためには、単にAPIが適切に構築された場合は、Content-Type
を持つことになり、ヘッダーが含まれています。このrequest.getAllResponseHeaders()
var request = new XMLHttpRequest();
request.open("HEAD", url, async);
request.send();
request.onreadystatechange = function() {
if(this.readyState == this.HEADERS_RECEIVED) {
request.getAllResponseHeaders()
}
}
を行います。それは、利用可能なファイルがあるかどうかのアイデアを与えるはずです。ループを閉じる
0
<!DOCTYPE html>
<html>
<head>
\t <title></title>
</head>
<body>
<script type="text/javascript">
var url = 'some_url';
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var content_type = xhttp.getResponseHeader("Content-Type");
if (content_type.indexOf('text/html') == -1){
alert('excel');
}
else {
alert('file not found');
}
}
else {
alert('invalid url');
}
};
xhttp.open("HEAD", url, true);
xhttp.send();
</script>
</body>
</html>
0
、この溶液に私を導いたあなたのコメントに感謝。 JQueryを使用すると、これはうまく動作しているようです。
req=$.ajax({
type:'HEAD',
url:'url',
success: function() {
if(req.getAllResponseHeaders().indexOf("ms-excel.sheet")>=0{}//report is available
else{} //report is not available
}
});
関連する問題
- 1. PythonでURLコンテンツをダウンロードせずに応答ヘッダを取得する方法はありますか?
- 2. Perlコンテンツのタイプ応答のタイプ
- 3. Grailsで認証を求めるプロンプトを表示せずにURLからコンテンツをダウンロードする
- 4. ダウンロードせずに1つのURLで更新を確認し、ファイル全体
- 5. Javascriptでコードを確認せずにURLをGooglebotに送信する方法
- 6. URLからの応答
- 7. omdnapiでヌル応答を確認する
- 8. javascriptスニペットのリモートURLを確認する
- 9. Retrofit2 - グローバルに応答コードを確認
- 10. jqueryの応答がjsonかどうかを確認する
- 11. URLからの応答を取得
- 12. android mms mmsコンテンツからmms URLをダウンロード
- 13. ダウンロード処理を中断せずにステータスコードを確認
- 14. S3サーバーからユーザーにダウンロードを確認
- 15. JavaScriptからURLからコンテンツを取得
- 16. JavaScriptからJavaScriptへの応答(カスタムエラーコード)
- 17. 応答があるかどうかを確認する方法
- 18. リロードせずにjspページからの応答を取得するには?
- 19. Linux:ダウンロードせずにftpでファイルのサイズを確認する方法
- 20. URLリライトで非HTML応答のタグ内のコンテンツを一致させる
- 21. Node.js res.setHeader( 'content-type'、 'text/javascript');応答のjavascriptをファイルとしてダウンロード
- 22. サーバからデバイスへの確認応答をヘキサフォーマットで送信する方法は?
- 23. サーバー応答の未確認データ
- 24. JavaScriptでURL情報を確認する
- 25. HttpsのURLからの応答を読み取るには?
- 26. 現在の応答者を確認しますか?
- 27. Google DNS/OpenDNS - 応答サーバーのIPアドレスを確認しますか?
- 28. Javascriptの確認または他のタイプの確認
- 29. JavaScriptからサーバーからの応答を取得する
- 30. URLからのセッションの確認をクリック
良いキャッチは、答えを更新! xhrはXMLHttpRequestです。本質的にはjQueryを使用しないAJAX呼び出しです –
これは適切な実装です –