2015-06-13 38 views
0

我在做类似这样的东西代码:将iframe的src时捕捉500响应

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

被调用返回的文档,无论是Word文档,PDF等的页面和提示用户打开/保存,通常工作正常。

我遇到的问题是,如果在服务器端出现问题,返回500响应。我似乎没有任何方法来捕捉错误。

我试过在那条线上试一试。 iframe的.error函数似乎没有抓住它。

有谁知道一个好方法,可以让我赶上500,所以我可以采取行动相应的用户界面?

+0

重复存在的问题? http://stackoverflow.com/questions/15273042/catch-error-if-iframe-src-fails-to-load-error-refused-to-display-http-ww –

回答

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 
    } 
    } 
}); 
+0

这是长期运行的报告页面的问题虽然? – Simon

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!"); 
    } 
    }) 
}) 

你可以尝试将如果语句更改到你喜欢的东西。