【发布时间】:2017-10-20 00:23:30
【问题描述】:
我已经设置了一个 GET 请求来从我的网站的 API 中检索一些 JSON。尽管在控制台的网络选项卡中正确显示了响应和 200 状态(附图片),但它仍然出现错误。我已经通过验证器运行了 JSON 响应,结果很好。有什么问题?
$(document).ready(function() {
console.log( "ready!" );
bindProject();
});
function bindProject() {
$(".project-link").on("click.project", function() {
console.log("clicked");
var id = $(this).data("id");
var $this = $(this);
loadProject(id, function() {
$("#previous, #next").show();
})
});
}
function loadProject(id, callback) {
$.get(BASE + "api/page/projects/" + id, {}, function(data) {
if (data.success == "true") {
console.log("success");
$("#project-info").attr("projectid", id);
$("#project-title").html(data.title);
$("#project-info").html(data.info);
$("#project-year").html(data.info);
$("#project-tags").html(data.tags);
setProject();
else {
console.log("error")
}
}, "json")
}
【问题讨论】:
-
你的意思是 console.log('error') 或者....?
-
另外需要注意的是,您在请求中包含“json”。这意味着响应必须返回有效的 json,即使它只是一个空对象或数组。返回无效的 json 或根本没有 json 将导致 $.get 进入错误处理,因为它无法按预期正确解析。
-
您可能没有“成功”
key和“真实”value在data。因此。您提供的整个function()仅在成功时执行...因为这是成功回调。您无需检查请求是否成功。看documentation -
是的。它确实 console.log("error")。我在控制台的网络选项卡中获得的响应通过了 JSON 验证器测试,这足以确定 JSON 是否导致错误?
-
只是为了准确我之前的评论...如果您想测试请求是否成功并提供回调,请使用@R。博克回答。因为您实际上要做的是检查 json 中的“成功”键是否具有“真”值……这显然不是正确的做法。