3

AJAX を動作させることができません! 私はウェブサイトにマーキーを持っています、それはうまくいきました!しかし、テキスト ファイル内のマーキーのテキストを検索し、テキスト ファイル内のテキスト (1 行) を読み取ってcontent、スクリプト内のグローバル変数である という変数に代入する必要があります。鬼ごっこ。

Web サイト (ローカル IIS) を実行すると、マーキー テキストは "undefined" (引用符なし) になります。

テキストを変数に割り当てないのはなぜcontentですか?

    var content

    function loadXMLDoc()
    {   
        var textfile;
        if (window.XMLHttpRequest)
        { 
            textfile = new XMLHttpRequest(); 
        }
        textfile.onreadystatechange = function ()
        {   
            if (textfile.readyState == 4 && textfile.status == 200)
            { 
                content = textfile.responseText; 
            }
        }
        textfile.open("GET", "C:\Users\Fares\Dropbox\Sync\College\Computing\DeltaOne\MarqueeText.txt", true);
        textfile.send();
    }

編集: @kuncajs に感謝します。彼が指摘したように、関数を呼び出すのを忘れていました! :) 修理済み!他のみんなに感謝します!

4

2 に答える 2

2

次のようなローカル パスは使用しないでください。 C:\Users\Fares\Dropbox\Sync\College\Computing\DeltaOne\MarqueeText.txt

IIS の www ディレクトリに置き、パスを次のように指定します。 localhost/text.txt

サーバーはファイルシステムへのアクセスを制限できます。また、本番環境にデプロイする場合でもパスが機能するように、相対パスtext.txtまたは絶対パスを試す必要があります。/text.txt

編集: これで問題が解決しない場合は、実際にloadXMLDoc()関数を呼び出していることを確認してください。また、すべての操作がAJAX の終了後に行われることを確認してください。つまり、AJAX が完了したときに if - で割り当てを行うことを意味しますが、マーキー !AFTER! も初期化する必要があります。テキストが読み込まれます。前に行うと未定義になります

于 2013-03-21T12:26:21.537 に答える
0

最初に相対パスまたは絶対パスを使用してみてください。

それでもうまくいかない場合は、ブラウザを使用してファイルにアクセスできることを確認してください (たとえば、Web サイトがオンmysite.com/index.htmlになっているとします。開いてみてくださいmysite.com/text.txt) 。

ブラウザーを使用してアクセスできない場合は、このファイルを読み取れるようにサーバーを構成する必要があります。

また、XHR を非同期にするように要求しているため、変数が設定されるまでに少し時間がかかる場合があります (サーバーの速度によって異なります)。

于 2013-03-21T12:38:56.867 に答える