【问题标题】:Not getting data from JSON file没有从 JSON 文件中获取数据
【发布时间】:2013-05-23 07:27:10
【问题描述】:

我正在执行这段代码:

var element=null;
$.ajax({
        type: 'GET',
        async: false,
        url: "C:\Users\myDir\Desktop\Project\jsonfile.json",
        dataType: 'json',
        success : function(data) {
        element=data;
        }
    });

JSON 结构:

{
   "info":[
      {
         "a1": "Ram",
         "b1": "P123"
      },
      {
         "a1": "ROM",
         "b1": "P245"
      }
     ]
}

但我在变量中一无所获

【问题讨论】:

  • 变量中没有任何内容??是否有任何错误.. 尝试在 succes 函数中使用 alert(element.info[0].a1) 并检查您是否收到警报
  • 我尝试了简单的 alert("hi");在 element=data;... 之后它也不起作用
  • 试试 console.log(data);在您的 ajax 成功函数中并检查您的浏览器控制台是否正在获取任何数据
  • 它根本不在 Ajax 函数内部

标签: javascript jquery html json getjson


【解决方案1】:

使用检查 ajax 中的任何错误

var element=null;
$.ajax({
        type: 'GET',
        async: false,
        url: "jsonfile.json",//Edited
        dataType: 'json',
        success : function(data) {
        element=data;
        }
        error: function(jqXHR, textStatus, errorThrown) {
         console.log(textStatus, errorThrown);
        }
    });

【讨论】:

  • 我试过这段代码。它显示404 Not Found错误。如何纠正这个问题??
  • 所以您的网址:“C:\Users\myDir\Desktop\Project\jsonfile.json”不正确。将其更改为网址:“jsonfile.json”。请参阅答案中的编辑
  • 如果我给像“C:\Users\myDir\Desktop\Project\jsonfile.json”这样的url,错误是No Transport。如果我给这个“jsonfile.json”,错误不是找到了。
  • 你确定 jsonfile.json 是文件吗?是jsonfile.php吗。我怀疑文件扩展名。检查你是否有一个名为jsonfile.json的文件。错误表明没有这样的文件
  • 是的。我已经检查过了。这是我的网址:“C:\Users\Asus\Desktop\Training\mapInput.json”
【解决方案2】:

可能是文件的权限问题。将 json 文件与所有其他代码文件一起插入,并在 url 中给出相对路径

$.ajax({
        type: 'GET',
        async: false,
        url: "jsonfile.json",
        dataType: 'json',
        success : function(data) {
        element=data;
        }
    });

//json文件的位置与ajax调用的文件相同

【讨论】:

    猜你喜欢
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    相关资源
    最近更新 更多