我正在使用jquery.ajax()创建一个jsonp请求:
var cep = 99999999;
$.ajax({
url: "http://cep.paicon.com.br/jsonp/"+ cep +"?callback=addressFunction",
dataType: 'jsonp',
crossDomain: true,
jsonp: false
})
当没有问题时,请求的页面正常调用我的回调函数。
但是,在某些情况下,请求的页面不会返回任何内容。
如何处理此错误,因为它不会调用任何回调函数?
谢谢!
(抱歉我的英语不好)
答案 0 :(得分:0)
你无法处理。必须使服务器始终返回一些JavaScript,在出现错误的情况下,可能会调用一些预先安排的错误处理函数,或任何看似合适的函数。
答案 1 :(得分:0)
如果您请求的页面没有返回任何内容,那么您需要将其包装在某些代码中,以便在某些JSON中返回错误代码。因此,您可以使用具有超时的内容来装饰请求服务,然后返回一些可能是:
的json{
errorCode: "requestTimeout"
}
答案 2 :(得分:0)
您可以在$ .ajax()调用上设置超时,并通过该机制处理缺少响应。
$.ajax({
url: "http://cep.paicon.com.br/jsonp/"+ cep +"?callback=addressFunction",
type: "GET",
dataType: "jsonp",
timeout: 2000,
success: function(response) { alert(response); },
error: function(x, t, m) {
if(t==="timeout") {
alert("got timeout");
} else {
alert(t);
}
}
});
答案 3 :(得分:0)
我在$ .ajax错误设置中使用textStatus ==“parsererror”处理错误。
现在我的功能是这样的:
function buscaEndereco(cep){
url = "http://cep.paicon.com.br/jsonp/"+ cep;
$.ajax({
url: url,
type: "GET",
dataType: 'jsonp',
crossDomain: true,
timeout: 10000,
success: function(response){
montaEndereco(response);
},
error: function(x, t, m){
if(t == "timeout"){
alert("Timeout");
} else {
if(t == "parsererror"){
alert("CEP not found");
} else {
alert(t);
}
}
}
});
}
由于