【问题标题】:Why isn't my JQuery get() funtion working for JSON urls but is working for non-JSON urls?为什么我的 JQuery get() 函数不适用于 JSON url,但适用于非 JSON url?
【发布时间】:2016-04-16 21:24:48
【问题描述】:

我的 HTML 文件和主 Javascript 文件位于同一文件夹中的两个文件:

hello.js
hello.json

这是我的 HTML:

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <script type="text/javascript" src="jquery-1.12.1.js"></script>
        <script type="text/javascript" src="page.js"></script>
    </body>
</html>

这是我的主要 Javascript(即,不是 hello.js 文件):

$(document).ready(function() {
    $.get("hello.js", function(response) {
    console.log("Hello")
    });
});

如您所见,这是一些相当复杂的代码。如上所示,Javascript 可以很好地在控制台上打印出“Hello”。当我将“hello.js”更改为“hello.json”时,没有打印任何内容。我尝试了几个不同的 JSON 文件,但没有任何效果。

我认为这并不重要,因为数据实际上并没有被解析,但我确实验证了 hello.json 中的 JSON 数据格式正确。

【问题讨论】:

  • 也许您的服务器不提供 json 文件?你能给我们一个网址来测试一下吗?
  • 您是否在使用的任何浏览器上检查了开发人员工具中的网络面板? (应该可以在大多数主流浏览器中使用 F12 打开它)。这应该告诉您是否正在发出请求,如果是,服务器正在返回什么响应。这将有助于缩小范围。

标签: javascript jquery json ajax get


【解决方案1】:

尝试使用$.getJSON() 而不是$.get() 来检索 JSON 文件,或者在使用 $.get() 检索 JSON 文件时尝试将 dataType 指定为 JSON。这可能行得通。

【讨论】:

  • 应该没关系,$.getJSON 只是数据类型设置为 JSON 的$.get 的快捷方式。
猜你喜欢
  • 2021-05-03
  • 1970-01-01
  • 2015-10-05
  • 2012-02-14
  • 1970-01-01
  • 2012-12-06
  • 2017-11-26
  • 1970-01-01
  • 2020-10-08
相关资源
最近更新 更多