Ошибка синтаксиса JavaScript XMLHttpRequest - PullRequest
0 голосов
/ 22 июня 2011

Я новичок в javascript и храню некоторые данные в текстовом файле, которые я хочу использовать на своей веб-странице.

Однако когда я отправляю 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:

синтаксическая ошибка: Строка "File: \\ myinfo.txt": 1

тогда здесь внизу есть текст, который находится на этой строке

Я думаю, это может означать, что мне не разрешен доступ к локальному файлу, и это способ Firefox сообщить мне об этом.

Кто-нибудь имеет опыт работы с этой ошибкой или знает, что она означает?

1 Ответ

2 голосов
/ 22 июня 2011

Символ обратной косой черты имеет особое значение в строке.Это означает, что следующий символ в некотором роде особенный, например, вы можете включить кавычку в строку, используя обратную косую черту, чтобы экранировать ее:

'It\'s a string'

Чтобы включить буквенную обратную косую черту, вы помещаете еедважды:

'This is one backslash \\ character'

Итак, в вашем примере у вас есть \\\m.Первые две косые черты становятся одной косой чертой, а \m не распознается как допустимая escape-последовательность, поэтому вы получаете сообщение об ошибке.

Измените URL-адрес, чтобы использовать прямые косые черты (которые не имеют этого специального значенияи является правильным типом косой черты для использования в URL в любом случае), или удвойте обратную косую черту:

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

Кроме того, обратите внимание, что этот URL на самом деле ни на что не указывает, это должно быть что-то вродеthis:

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

Кроме того, как указано выше, XMLHttpRequest работает только с тем же доменом, что и размещенная на нем страница, поэтому, если ваша страница находится на http://www.example.com/, вы можете получить доступ только к ресурсам.на http://www.example.com/.

...