在设置 iframe 的 SRC 时捕获 500 响应
本文关键字:响应 SRC 设置 iframe | 更新日期: 2023-09-27 17:56:07
我正在做类似于以下代码的事情:
$('#myIFrame').attr('src', 'dosomethingthatreturnsadocument.aspx');
被调用的页面返回一个文档,无论是word文档,pdf等,并提示用户打开/保存,通常工作正常。
我遇到的问题是,如果服务器端出现问题,则返回 500 响应。我似乎没有任何办法捕捉错误。
我已经尝试过在那条线周围捕捉。iframe的.error函数似乎没有抓住它。
有谁知道一种好方法可以让我抓住 500,以便我可以对 UI 采取相应的行动?
您应该首先检查响应,然后在 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
}
}
});
您可以在加载 iframe 后立即使用 jQuery 检查它的内容,并检查它是否是错误页面,例如检查页面的标题。
$(".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 语句更改为您喜欢的其他语句。