Im folgenden Code versuche ich nur, den HTTP-Antwortcode von einem jQuery.ajax-Aufruf abzurufen. Wenn der Code dann 301 (permanent verschoben) lautet, zeigen Sie den Antwortheader "Standort" an:
<?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">
<head>
<title>jQuery 301 Trial</title>
<script src="http://code.jquery.com/jquery-1.5.1.min.js"></script>
<script type="text/javascript">
function get_resp_status(url) {
$.ajax({
url: url,
complete: function (jqxhr, txt_status) {
console.log ("Complete: [ " + txt_status + " ] " + jqxhr);
// if (response code is 301) {
console.log ("Location: " + jqxhr.getResponseHeader("Location"));
// }
}
});
}
</script>
<script type="text/javascript">
$(document).ready(function(){
$('a').mouseenter(
function () {
get_resp_status(this.href);
},
function () {
}
);
});
</script>
</head>
<body>
<a href="http://ow.ly/4etPl">Test 301 redirect</a>
<a href="http://cnn.com/not_found">Test 404 not found</a>
</body>
</html>
Kann jemand darauf hinweisen, wo ich falsch liege? Wenn ich das Objekt 'jqxhr' in Firebug überprüfe, kann ich weder den Statuscode noch den Antwortheader 'Location' finden. Ich habe den Haltepunkt in der letzten Zeile von 'complete' gesetzt.
Vielen Dank.