我正在做与此代码类似的事情:
$('#myIFrame').attr('src', 'dosomethingthatreturnsadocument.aspx');
被调用的页面返回一个文档,无论是word doc,pdf等,并提示用户打开/保存,一般情况下工作正常。
我遇到的问题是如果服务器端出现问题,则返回500响应。我似乎无法捕捉错误。
我试过试试这条线。 iframe的.error函数似乎没有抓住它。
有没有人知道一种能让我抓住500的好方法,所以我可以用UI做出相应的行动?
答案 0 :(得分:0)
您应首先检查响应,然后在iframe中进行设置。你可以尝试这样的事情:
var loading_url = "/dosomethingthatreturnsadocument.aspx"
$.ajax({
url: loading_url,
type: 'GET',
complete: function(e, xhr, settings){
if(e.status === 200){
$('#myIFrame').attr('src', 'dosomethingthatreturnsadocument.aspx');
}else if(e.status===500){
// do something
}
}
});
答案 1 :(得分:0)
您可以在加载后立即使用jQuery检查iframe的内容,并检查它是否是错误页面,例如检查页面标题。
$(".loadbutton").on('click',function(){
$(".iframe").attr("src", "http://www.example.org/")
.load(function(){
if($(this).contents().find("title").first().text() == "error"){
//Error occured!
}else{
//Works!
alert( "loaded!" );
}
})
})
您可以尝试将 if 语句更改为您喜欢的其他内容。