jQuery AJAX使命令呈现404结果

时间:2014-04-13 04:14:49

标签: javascript php jquery ajax

我有以下jQuery

JS:

$.ajax({
    type: "POST",
    url: url,
    async:false,
    data: {}
})
.done(function( msg ) {
    console.log(msg);
}).fail(function( jqXHR, textStatus ) {
    alert('Could not find file!'+textStatus);
});

如果页面存在,它会将页面html的内容检索到变量'msg'

如果它不存在...我有一个自定义404响应,如果他们试图通过AJAX检索文件来请求页面,我想发送给用户。我的问题是.fail响应只给了我jqXHR和textStatus但没有msg,所以我无法显示我的404页面的内容!

如果jQuery AJAX返回错误(例如404未找到),我如何才能从服务器打印结果?

我查看了jQuery的文档并找不到任何内容,感谢任何帮助!

2 个答案:

答案 0 :(得分:2)

参数jqXHR是一个扩展本地XMLHttpRequest对象的jQuery对象。

此处的文档:jqXHR

由于它本质上是一个XHR对象,因此您应该能够在该对象的属性responseText中找到响应(如果存在)。

jqXHR.responseText

答案 1 :(得分:1)

遵循nderscore

HTML

<p id="results"></p>

JS

var request = $.ajax({
    type: "POST",
    // url: url,
    async:false,
    data: {}
});
request.done(function( msg, textStatus, jqxhr ) {
        if (jqxhr.status === 200) {
            $("#results").html("status: "+ jqxhr.status+"<br\/><br\/>"+JSON.stringify(msg) );
   };
    console.log(msg, jqxhr.status === 200);
})
request.fail(function( msg, textStatus, jqxhr ) {
    if (jqxhr.status === 404) {
    $("#results").html('Could not find file!'+textStatus);
   };
});

jsfiddle http://jsfiddle.net/guest271314/ADF2f/