web-dev-qa-db-ja.com

ダウンロードURLが異なるlocalhostポートを使用している場合、ファイルをダウンロードしない

テキストファイルがあり、ダウンロードしたい。私はローカルホストで働いています。ファイルのダウンロード元のHTMLページは、localhost:8080から呼び出されます。そして、ダウンロードしたいファイルは、別のポート、つまり 'localhost:100'を使用して呼び出しています。

このようにすると、特定のtxtファイルを取得できません。実際、フォルダーの場所全体がHTML形式でダウンロードされます。この問題を解決するには?

ただし、HTMLとダウンロードURLの両方でポートが同じ場合、その特定のテキストファイルがダウンロードされます。

編集

HTMLページ( http:// localhost:8080/project/test.html

    <HTML>
    <HEAD>
    <script src="//code.jquery.com/jquery-1.9.1.js"></script>
    <script type="text/javascript">
        var url="http://localhost:100/test";
        var file = "test112.Zip";
        saveFile(url,file);  // Text Document
        alert("File is downloaded");

        function saveFile(fileURL,fileName){

             if (!window.ActiveXObject) {
            var save = document.createElement('a');
            save.href = fileURL;
            save.target = '_blank';
            save.download = fileName || fileURL;
            var evt = document.createEvent('MouseEvents');
            evt.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0,
                false, false, false, false, 0, null);
            save.dispatchEvent(evt);
            (window.URL || window.webkitURL).revokeObjectURL(save.href);
            }        
        }

    </script>
</HEAD>
<BODY>

</BODY>
</HTML>

これを実行すると、次のファイルがダウンロードされます-

download.html

Download.htmlにあります

/ testのインデックス

localhost:8080はJetty Serverであり、localhost:100はApache Serverです

1
Bikram Gangwar

両方のサーバーに、構成ファイルで定義されたまったく同じドキュメントルートフォルダーがあることを確認する必要があります。 Apacheの新規インストールでは、httpd.confを見て、次のような内容を見つけます。

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/path/to/html"

そして変更:

/path/to/html

テキストファイルがあるフォルダーに。

次に、構成ファイルを変更したWebサーバーを再起動する必要があります。

それでも問題が解決しない場合は、各Webサーバーのエラーログを確認して、各Webサーバーが実際にアクセスしようとしているフォルダーを確認してください。 「見つかりません」という意味のステータス404エラーを探してください。

1
Mike