0

私は JavaScript を初めて使用し、Web ページで使用したい txt ファイルにいくつかのデータを保存しています。

ただし、XmlHttpRequest を送信してテキスト ファイルを取得すると、Firefox は、読み込もうとしている .txt の最初の行で構文エラーをスローします。

これが私のコードです:

    var txtFile = new XMLHttpRequest();

    txtFile.onreadystatechange = function() {

        if (txtFile.readyState === 4) {  

                if (txtFile.status === 200) {               
                    allText = txtFile.responseText;
                    lines = txtFile.responseText.split("\n"); 
            }
        }
    }
    txtFile.open("GET", "File:\\\myinfo.txt", true);    
    txtFile.send(null); 

Firefox からのエラー メッセージは次のとおりです。

構文エラー:「ファイル:\\myinfo.txt」行:1

ここに、この行にあるテキストがあります

ローカル ファイルへのアクセスが許可されていないことを意味している可能性があると思います。これは、Firefox がこれを知らせる方法です。

このエラーの経験がある人、またはその意味を知っている人はいますか?

4

1 に答える 1

2

バックスラッシュ文字は、文字列内で特別な意味を持ちます。これは、次の文字が何らかの意味で特別であることを示します。たとえば、バックスラッシュを使用してエスケープすることで、文字列内に引用符を含めることができます。

'It\'s a string'

リテラルのバックスラッシュを含めるには、2 回入れます。

'This is one backslash \\ character'

したがって、あなたの例では、\\\m. 最初の 2 つのスラッシュが 1 つのスラッシュになり\m、有効なエスケープ シーケンスとして認識されないため、エラーが発生します。

URL を変更して、スラッシュ (このような特別な意味はなく、URL で使用する正しいタイプのスラッシュです) を使用するか、バックスラッシュを二重にします。

"file:///myinfo.txt"
"file:\\\\\\myinfo.txt"

また、この URL は実際には何も指していないことに注意してください。次のようにする必要があります。

"file:///C:/myinfo.txt"

また、上で指摘したように、XMLHttpRequest は、それがホストされているページと同じドメインに対してのみ機能するため、ページがhttp://www.example.com/にある場合、 http://wwwのリソースにしかアクセスできません。 example.com/ .

于 2011-06-22T15:52:59.467 に答える