AJAX和JSON不能使用jQuery

时间:2017-12-15 13:47:12

标签: jquery json ajax

我刚刚开始使用AJAX和JSON,这是一个非常令人沮丧的旅程。我正在尝试实现我的JSON文件,并通过在函数内部记录“OK”来检查它是否成功。这是代码:

$(function() {
  var dat;
  $.ajax({
    type: 'GET',
    url: "API.json",
    success: function(data) {
      console.log("OK");
      $.each(data, function(i, data) {
        console.log("OK");
      })
    }
  })
})

这是AJAX文件:

[{
  id: 1,
  name: 'James',
  drink: 'Coffee'
}, {
  id: 2,
  name: 'John',
  drink: 'Latte'
},]

然而,它从不记录任何内容,无论是在函数的开头还是在每个循环内部。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您可以尝试将JSON文件中的数据格式更改为类似的内容,然后立即尝试,

[{
  "id": 1,
  "name": "James",
  "drink": "Coffee"
}, {
  "id": 2,
  "name": "John",
  "drink": "Latte"
}]

$('#btn').click(function() {
    $.getJSON('path/API.json', function(data) {
       console.log(data);
    });
});

答案 1 :(得分:0)

如果您正在使用文件系统,意味着您的HTML文件位于某个文件夹中,并且您尝试直接从它们(file:/// E:/SmapleDemo/Sample.html)访问它,那么它将无法正常工作

它会抛出跨源错误。

尝试使用IIS等任何Web服务器设置应用程序并从那里访问它。它应该工作。

答案 2 :(得分:0)

在进行任何webservice调用时,客户端必须提及数据类型和内容类型标头。 您可以参考以下代码:

$(function() {
    $('#btnGetData').click(function() {
        $.ajax({
            type: 'POST',
            url: 'URL',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function(response) {
                $('#data').html(JSON.stringify(response));
            },
            error: function(error) {
                console.log(error);
            }
        });
    });
});

在您的代码中,您没有提到数据类型和内容类型。尝试添加它,它会工作。如果仍然存在错误,请尝试使用浏览器访问该Web服务并检查它是否正在响应正确的数据。