source: branches/dev/html/test/uehara/captcha/ajax_captcha/auth.js @ 8

Revision 8, 2.1 KB checked in by root, 17 years ago (diff)

new import

Line 
1RESULT_PAGE_PHP = 'result.php';         // 結果ページ表示PHP
2CREATE_IMAGE_PHP = 'create_image.php';  // 画像生成PHP
3RESULT_TEXT_ID = 'result';              // 結果文字表示場所ID(HTMLで定義)
4CODE_IMG = 'code';                      // コード表示IMGタグのID
5
6// ブラウザによってXmlHttpRequestのObjectを振り分ける
7function getXmlHttpRequestObject() {
8    if (window.XMLHttpRequest) {
9        // Mozilla, Safariなど
10        return new XMLHttpRequest();
11    } else if (window.ActiveXObject) {
12        // IE
13        return new ActiveXObject("Microsoft.XMLHTTP");
14    } else {
15        // 非対応
16        alert("ブラウザがXmlHttpRequestに対応していません!!");
17    }
18}
19
20// オブジェクト生成
21var receiveReq = getXmlHttpRequestObject();
22
23// リクエスト処理
24function makeRequest(url, param) {
25    // 受信完了かまだopenメソッドが呼び出されていない
26    if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
27        // サーバとの通信を開始
28        receiveReq.open("POST", url, true);
29        // サーバーからの応答時の処理を定義(結果のページへの反映)
30        receiveReq.onreadystatechange = updatePage;
31
32        // ヘッダー定義
33        receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
34        receiveReq.setRequestHeader("Content-length", param.length);
35        receiveReq.setRequestHeader("Connection", "close");
36
37        // 送信
38        receiveReq.send(param);
39    }   
40}
41
42// サーバーからの応答時の処理
43function updatePage() {
44    // 受信が完了していたら実行
45    if (receiveReq.readyState == 4) {
46        // 設定したIDへ生成した文字列をセット
47        document.getElementById(RESULT_TEXT_ID).innerHTML = receiveReq.responseText;
48        // コード画像を変化させる
49        img = document.getElementById(CODE_IMG);
50        // キャッシュを回避するためにランダムな値をつける
51        img.src = CREATE_IMAGE_PHP + '?' + Math.random();
52    }
53}
54
55// 認証処理実行
56function auth(forms) {
57    var postData = forms.input_data.name + "=" + encodeURIComponent( forms.input_data.value );
58    // リクエスト実行
59    makeRequest(RESULT_PAGE_PHP, postData);
60}
Note: See TracBrowser for help on using the repository browser.