在设置iframe的src时捕获500响应

时间:2015-06-13 17:56:49

标签: javascript c# jquery webforms

我正在做与此代码类似的事情:

$('#myIFrame').attr('src', 'dosomethingthatreturnsadocument.aspx');

被调用的页面返回一个文档,无论是word doc,pdf等,并提示用户打开/保存,一般情况下工作正常。

我遇到的问题是如果服务器端出现问题,则返回500响应。我似乎无法捕捉错误。

我试过试试这条线。 iframe的.error函数似乎没有抓住它。

有没有人知道一种能让我抓住500的好方法,所以我可以用UI做出相应的行动?

2 个答案:

答案 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 语句更改为您喜欢的其他内容。