我刚刚开始使用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'
},]
然而,它从不记录任何内容,无论是在函数的开头还是在每个循环内部。有什么想法吗?
答案 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服务并检查它是否正在响应正确的数据。