将responseText对象转换为字符串以获取警报

时间:2013-04-19 16:29:02

标签: javascript

我正在尝试使用Javascript从.txt文件中获取文本。我试图通过使用警告语句来显示文件中的文本来测试我的代码。

我收到此警告框:

example

这是我的代码:

$(document).ready(function() {
    // Obtain services text from .txt file
    var text = new XMLHttpRequest();
    text.open("GET", "js/servText.txt", true);
    text.onreadystatechange = function() {
        // Check states 4 = Ready to parse, 200 = found file
        if(text.readyState === 4 && text.readyState === 200) {
            text = text.responseText;
        }
    }
    alert(text);
    text.send(null);
});

我试过使用JSON.stringify();但是我收到了一个带有“{}”的警告框,但它在谷歌浏览器中无效。

我也尝试过使用toString();和String();

任何帮助都会很棒!谢谢-Chris

1 个答案:

答案 0 :(得分:3)

您需要将alert语句移动到回调中。:

$(document).ready(function() {
    // Obtain services text from .txt file
    var text = new XMLHttpRequest();
    text.open("GET", "js/servText.txt", true);
    text.onreadystatechange = function() {
        // Check states 4 = Ready to parse, 200 = found file
        if(text.readyState === 4 && text.status === 200) {
            alert(text.responseText);
        }
    }
    text.send(null);
});

AJAX调用顾名思义就是Asynchronous。您的alert被称为 immediatly ,它不会等待AJAX​​请求完成。

异步可能是一个令人难以置信的心灵。您的代码不是从上到下运行,而是您必须查看事件。活动从哪里开始?我有什么数据?等