我正在使用jquery进行一些json解析。如果json数组中没有数据,我想提出一条消息。所以我使用下面的代码并得到条件为true但没有在html div中附加消息。
我的代码:
$( "#refresh" ).click(function() {
$.getJSON("http://ec2-72-44-51-113.compute-1.amazonaws.com:8001/get_latest_verification", function(obj){
if(json.length==0){
$('<p>no updates found</p>').appendTo('#rr');
}
});
});
任何人都可以纠正我。
答案 0 :(得分:3)
你有一个小错误:
您应该检查if(obj.length==0)
而不是你那样做。
为什么?因为这是你的回调的参数,声明为:
function(obj){...}
通知:
我当然希望您在服务器上启用cors,因为运行代码显示:
* XMLHttpRequest无法加载http://ec2-72-44-51-113.compute-1.amazonaws.com:8001/get_latest_verification。 来源http://run.jsbin.com不被允许 访问控制允许来源。*
我在响应中看不到任何allow -domain标头:
Accept:application/json, text/javascript, */*; q=0.01
Cache-Control:no-cache
Origin:http://run.jsbin.com
Pragma:no-cache
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
答案 1 :(得分:0)
答案 2 :(得分:0)
答案 3 :(得分:0)
你有什么问题?只需检查完成的请求,json为空或请求失败(use promise pattern):
var url = "http://ec2-72-44-51-113.compute-1.amazonaws.com:8001/get_latest_verification";
$( "#refresh" ).click(function() {
$.getJSON(url).done(function (json) {
if(!json || json.length === 0){
$('<p>no updates found</p>').appendTo('#rr');
}
}).fail(function () {
$('<p>no updates found</p>').appendTo('#rr');
});
});