我有以下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的文档并找不到任何内容,感谢任何帮助!
答案 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);
};
});