Xjqueryの$.ajaxで302リダイレクトされた場合はリダイレクト後のステータスが200が返ってくると聞いたので試してみました。
サンプルコード
test2.html
ajax2.php
結果
サンプルコード
test2.html
<!DOCTYPE html>
<html>
<head>
<title>302リダイレクト時の動作</title>
<script src="./js/jquery-3.1.0.min.js"></script>
</head>
<body>
<script>
$(function(){
$.ajax({
type: 'GET',
url:'./ajax2.php',
dataType:'json',
statusCode:{
200:function(){
console.log('execute 200');
},
302:function(){
console.log('execute 302');
}
}
}).done(function(data){
console.log('execute done');
}).fail(function(){
console.log('execute fail');
}).always(function(){
console.log('execute always');
});
});
</script>
</body>
</html>
ajax2.php
<?php
header('Location:./ajax.json');
exit();
?>
結果
execute doneこれは$.ajaxの動作というよりXMLHttpRequestの動作なので、リダイレクト前の内容をajaxで取得することはできないと思われます。
execute always
execute 200