我正在使用Json解析制作迷你应用。通过点击网址http://localhost:3000/cities.json获得的输出如下
[
{
"id": 1,
"name": "Bangalore"
},
{
"id": 2,
"name": "Chandigarh"
},
{
"id": 3,
"name": "Chennai"
},
{
"id": 4,
"name": "Hyderabad"
},
]
我使用函数
解析了这个 $.getJSON("http://localhost:3000/cities.json?&callback=?", function(data) {
//something something
}
现在我想添加.error功能,以防万一有回复问题,或说服务器没有响应我可能会通过发出类似
的提醒来了解它.error(function(){alert("error");})
我按照以下方式尝试了
$.getJSON("http://localhost:3000/cities.json?&callback=?", function(data) {
//something something
}).error(function(){
alert("error");
})
我也用这种方式尝试了
var cities = $.getJSON("http://localhost:3000/cities.json");
cities.error("hi");
但他们都没有工作。要检查错误,我停止我的本地服务器,它没有给我任何警报。请指导我应该采取哪种方式?
------的修改 --------
也尝试使用
var jqxhr = $.getJSON("http://localhost:3000/cities.json?callback=?", function() {
alert("success");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
如果我的localhost:3000服务器正在运行,它会给我警报成功和第二次成功,但万一我停止它没有错误调用,也使网址 http:// localhost:3000 / cities.json 无论服务器是否运行,总是倾向于给出错误
答案 0 :(得分:1)
您可以使用ajaxSetup
$.ajaxSetup({
error:function(XMLHttpRequest) {
//error
console.log(XMLHttpRequest.responseText);
}});
并且您的getJSON
照常使用
$.getJSON("http://localhost:3000/cities.json?&callback=?", function(data) {
//something something
});
答案 1 :(得分:0)
您现在使用的功能只是$.ajax的简写:
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
});
如果您将代码更改为$ .ajax,则可以使用error
,方法与success
相同。或者,您可以使用$.ajaxSetup为您的ajax调用设置默认错误处理程序。
答案 2 :(得分:0)
如果要创建json数据,则应创建一个名为error的参数。默认情况下将其设置为false,如果出现错误,则为true。然后在getJSON时检查错误值。
否则,我可能会建议使用
.get("", {}, function(json){
try{
var obj = jQuery.parseJSON(json);
}catch(err){ console.log(err); }
});
答案 3 :(得分:0)
您最后一个方法应该可以工作,但您必须指定一个错误函数: -
var cities = $.getJSON("http://localhost:3000/cities.json");
cities.error(function(){
alert('error');
});
或者您可以使用: -
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback,
error: callback
});
答案 4 :(得分:0)
这最终对我有用
$.ajax({
url: "http://localhost:3000/cities.json?&callback=?",
type: "GET",
dataType: "json",
timeout: 10000,
success: function(data, status, xmlstatus) {
call_to_function(data);
},
error: function(x, t, m) {
if (t === "timeout") {
$('#spinner').hide();
} else {
$('#spinner').hide();
}
}
});
由于