如何从jQuery.ajax获取响应状态代码?

在下面的代码中,我所要做的就是从jQuery.ajax调用中获取HTTP响应代码。然后,如果代码为301(永久移动),则显示“位置”响应标题:

<?xml version=“1.0”encoding=“utf-8”?>
<!DOCTYPE html PUBLIC“-//W3C//DTD XHTML 1.0 Strict//EN”
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd“>
<html xmlns=”http://www.w3.org/1999/xhtml“xml:lang=“en”lang=“en”>
<头>
<标题>jquery301试用版&lt/标题>
<脚本src=”http://code.jquery.com/jquery-1.5.1.min.js“&gt&lt/脚本>
<script type=“text/javascript”>
函数get_resp_status(url){
$.ajax({
url:url,
完成:功能(jqxhr、txt_状态){
console.log(“完成:[“+txt_status+”]“+jqxhr”);
//if(响应代码为301){
console.log(“位置:+jqxhr.getResponseHeader(“位置”);
// }
}
});
}
&lt/脚本>
<script type=“text/javascript”>
$(文档).ready(函数(){
$('a')。鼠标指针(
函数(){
获取_resp_状态(this.href);
},
函数(){
}
);
});
&lt/脚本>
&lt/头>
<车身>
<a href=”http://ow.ly/4etPl“>测试301重定向&lt/a>
<a href=”http://cnn.com/not_found“>未找到测试404&lt/a>
&lt/车身>
&lt/html>

有人能指出我哪里出了问题吗?当我在Firebug中检查“jqxhr”对象时,我找不到状态代码,也找不到“Location”响应头。我在“complete”的最后一行设置了断点

多谢

我看到jqXhr对象上的状态字段,这里有一个正在工作的小提琴:

http://jsfiddle.net/magicaj/55HQq/3/

$.ajax({
//...        
成功:函数(数据、文本状态、xhr){
控制台日志(xhr.status);
},
完成:功能(xhr、textStatus){
控制台日志(xhr.status);
} 
});

发表评论