Trong đoạn mã sau, tất cả những gì tôi đang cố làm là lấy mã phản hồi HTTP từ một cuộc gọi jQuery.ajax. Sau đó, nếu mã là 301 (Đã di chuyển vĩnh viễn), hãy hiển thị tiêu đề phản hồi 'Vị trí':Cách nhận mã trạng thái phản hồi từ jQuery.ajax?
<?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>
Ai đó có thể chỉ ra nơi tôi đang đi sai? Khi tôi kiểm tra đối tượng 'jqxhr' trong Firebug, tôi không thể tìm thấy mã trạng thái, cũng như tiêu đề phản hồi 'Vị trí'. Tôi đặt điểm ngắt trên dòng cuối cùng của 'hoàn thành'.
Cảm ơn nhiều.
https://api.jquery.com/jQuery.ajax/ – ehsan
Tôi biết điều này là cũ, nhưng tôi nghĩ rằng tôi đã giải quyết nó (XHR.responseURL): http://stackoverflow.com/a/39416846/4946681 – Nate