XMLHttpRequest

  • IE5で導入され、後に標準化された
  • Ajax用ライブラリは皆XMLHttpRequestのラッパー
    • 細かい制御をしようとすると直接さわる必要がある

XMLHttpRequest のようす

生で使うことは滅多にないが、一応雰囲気だけ知っておこう。

// リクエストのオブジェクトを作成
var xhr = new XMLHttpRequest();
xhr.open('GET', '/api/foo', true);

// レスポンスが返ってきたときの処理を登録
xhr.onreadystatechange = (e) => {
    if (xhr.readyState == 4) {
        if (xhr.status == 200) {
            console.log(xhr.responseText);
        }
        else {
            console.log('error');
        }
    }
};

// リクエストを送信
xhr.send(null);

POSTの場合。

var xhr = new XMLHttpRequest();
xhr.open('POST', '/api/foo', true);
xhr.onreadystatechange = (e) => { ... };

// クエリパラメータをつくる
var params = { a: 1, b: 'Hi there' };
var pairs = Object.keys(params).map((key) => {
    return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`;
});
var data = pairs.join('&');  // data === 'a=1&b=Hi%20there'

xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(data);

results matching ""

    No results matching ""