問題 : Google Chrome での ajax エラー
index.html --- POST ---> page1.php --- リンク ---> page2.html
- 「index.html」には、
<form>
「page1.php」に投稿する </li> - 「page1.php」には「page2.html」へのリンクが含まれています</li>
- 「page1.php」には、「ajax.php」への ajax 呼び出しが含まれています</li>
問題を表示する方法は?
- 「index.html」にアクセス</li>
- 「page1.php」に投稿</li>
- 「page2.html」へのリンクをたどる</li>
- 戻るボタンで「page1.php」に戻る
- F5で「page1.php」をリロード
- データの再提出を受け入れる
- ajax エラー : ajax 呼び出しが失敗し、空のエラー メッセージが表示される
なんで…あれ?
index.html :
<html>
<head>
</head>
<body>
index
<form method="post" action="page1.php">
<input type="submit">
</form>
</body>
</html>
page1.php :
<html>
<head>
<script src="jquery-1.10.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
function call_ajax()
{
$.ajax
(
{
type: "POST",
url: "ajax.php",
success: function( response )
{
console.log( response );
},
error: function (xhr, ajaxOptions, thrownError)
{
console.log( '%o', xhr );
console.log( '%o', xhr.responseText );
console.log( '%o', thrownError );
}
}
);
}
$( document ).ready(function() {
call_ajax();
});
</script>
</head>
<body>
page 1
<a href="page2.html">page2</a>
</body>
</html>
page2.html :
<html>
<head>
</head>
<body>
page 2
<a href="javascript:history.back()">back</a>
</body>
</html>
ajax.php :
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
ini_set('error_reporting', E_ALL);
header('Cache-Control: no-cache, must-revalidate');
header('Content-type: application/json');
$r = array( 'message' => 'one two one two, this is a test' );
echo json_encode( $r );
?>