Javascript加载文件失败,没有错误

时间:2015-09-18 17:08:25

标签: javascript

当我运行时:

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.js">
</script>
<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#btn").click(function(){
        try {
        $("#div1").load("demoddd.txt"); //there is no demoddd.txt
        }
        catch (err)
        {
            alert("Error: " + err); //this never runs
        }
        finally {
            alert("Finally");
        } 

    });

});
</script></head>
<body>
<button id="btn">Load file</button>
<div id="div1"></div>
</body>
</html>

我得到“终于”但没有错误。在调试控制台中,我看到404.使用load()函数时,我可以捕获404错误吗?

2 个答案:

答案 0 :(得分:2)

使用documentation

中显示的complete功能
$( "#success" ).load( "/not-here.php", function( response, status, xhr ) {
  if ( status == "error" ) {
    var msg = "Sorry but there was an error: ";
    $( "#error" ).html( msg + xhr.status + " " + xhr.statusText );
  }
});

答案 1 :(得分:0)

你需要获得httprequest状态,你不能抓住那个捕获的404。

使用此:

$("#div1").load("/demoddd.txt", function(responseText, statusText, xhr){
                if(statusText == "success")
                   alert("Successfully loaded!");
                if(statusText == "error")
                    alert("An error occurred: " + xhr.status + " - " + xhr.statusText);
        });

我要尝试的第一件事是设置完整的URL,而不是相对的URL。看看它是否有效。