利用者は2つの整数xとyを入力する。
入力されたxとyの和を,あらかじめ用意してあるCGI(後述)に渡して計算させ(JavaScript内で計算してはいけない),その結果をJSONで受け取る。
JSONを受け取り次第,xとyの和の値を取り出して画面上の該当箇所に表示する(画面全体を更新・遷移させてはいけない)。
CGIの呼び出しにはAjaxを使い,GETとPOSTのどちらでも呼び出せるようにする。
私が作ったのは次のものです。
・ajax.js
function HttpRequest(obj){
var x = document.getElementById('x').value;
var y = document.getElementById('y').value;
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://local.isc.meiji.ac.jp/~re00133/webprog/add-json.cgi');
xhr.responseType = "json";
xhr.send(x+y);
document.getElementById('ans').value=xhr.responseText;
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<script type="text/javascript" src="check.js"></script>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Ajaxによる足し算</title>
</head>
<body>
<div>
x: <input type="text" name="x" id="x" value="0"><br>
y: <input type="text" name="y" id="y" value="0"><br>
<input type="button" value="add_by_get" onClick="HttpRequest()">
<input type="button" value="add_by_post" onClick="HttpRequest()">
</div>
<div id="ans">
ここに答えが入ります。
</div>
</body>
</html>
質問したいのは
①どうやってAjaxを使い、cgiを呼び出すのか(記述の仕方)
②xとyをどのようにして、cgiに渡すのか
③どうやってJSON形式で結果を受け取るのか(記述の仕方)
④受け取ったJSONからどうやってxとyの和を取り出すのか
⑤私のプログラムでおかしい場所はどこか
です。
まだAjaxをちゃんと理解できていないのですごく初歩的な質問もあると思うのですが、よろしくお願いします。