【问题标题】:Can't display JSON from XMLHttpRequest无法显示来自 XMLHttpRequest 的 JSON
【发布时间】:2018-02-14 07:47:24
【问题描述】:

我似乎无法弄清楚为什么这段代码不会显示请求的 JSON。我已将其范围缩小到最低限度,但仍然存在问题。我没有正确执行 XMLHttpRequest 吗?

<html>
    <body>
            <a id="testname"></a>
            <a id="testval"></a>
    </body>
    <script>
        var request = new XMLHttpRequest();
        request.open('GET', 'test.json');
        request.responseType = 'json';
        request.send();
        request.onload = function() { 
            var test = request.response;
            document.getElementById("testname").innerHTML = test.name;
            document.getElementById("testval").innerHTML = test.val;
        };
    </script>
</html>

【问题讨论】:

  • 检查控制台是否有任何错误
  • @JaromandaX — 是 response,而不是 responseText
  • 我无法重现该问题。当我测试它时,代码运行良好。问题一定是你在问题中没有提到的东西。打开开发者工具。查看控制台。是否报告了任何错误? JSON 是什么样的?
  • 当我使用像 Morteza 发布的外部链接进行测试时,它似乎工作正常。我正在尝试访问本地文件 test.json 并使用 jsonlint 来验证 Json 的完整性。尝试以 test.json 的形式访问本地文件有什么问题吗?
  • "我正在尝试访问本地文件 test.json" — 然后您应该会收到一条非常明显的错误消息,并且您的问题与 stackoverflow.com/questions/10752055/… 重复

标签: javascript html json


【解决方案1】:

我相信您是在设置onload 回调函数之前发送请求的。最有可能的是,在您分配回调函数之前请求已经完成,因此没有发生任何事情。查看有关send 函数的文档:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 2019-05-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多