読みだすデータは、shift_jis で書かれた JSON 形式のテキストです。
{
"version" : "1.01a",
"name" : "日本語名表示"
}
.then() は、Windows8 Metro(JS) のすべての処理において同じ仕様のものが使われています
成功の場合
1) success が呼ばれる
2) doneCallbacks が呼ばれる
失敗の場合
1) failCallbacks が呼ばれる
2) statusCode 内が呼ばれる
JSON.parse を使用しているのは、Windows8 Metro(JS)との互換の為です。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=euc-jp">
</head>
<body>
<script type="text/javascript" src="http://localhost/json/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$.ajax({
url: "target.json",
beforeSend: function ( xhr ) {
xhr.overrideMimeType("text/plain; charset=shift_jis");
},
success: function(data, textStatus, jqXHR) {
alert(data);
alert(textStatus);
alert( JSON.stringify(jqXHR,null," ") );
},
statusCode: {
404: function() {
alert("ページが存在しません");
}
}
}).then(
function(data, textStatus, jqXHR) {
var obj = JSON.parse( data );
$("#tx1").val( obj.version );
$("#tx2").val( obj.name );
},
function(data) {
alert("err\n"+JSON.stringify(data,null," "));
alert("この後、statusCode の処理が実行されます");
}
);
</script>
<input type="text" id="tx1">
<br />
<input type="text" id="tx2">
</body>
</html>