2015-06-13 37 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!"); 
    } 
    }) 
}) 

你可以嘗試將如果語句更改到你喜歡的東西。