# Node.jsにてXMLHttpRequestの実装・リクエストヘッダの記載方法について

**URL:** <https://community.cybozu.dev/t/topic/111>\
**Category:** kintone 開発相談\
**Created:** [2022 年 9 月 27 日午前 4:58 UTC](https://community.cybozu.dev/t/topic/111 "2022-09-27T04:58:32Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account2925](https://avatars.discourse-cdn.com/v4/letter/l/7ab992/32.png) [@Legacy\_Account2925](https://community.cybozu.dev/u/Legacy_Account2925)\
**Post date:** [2022 年 9 月 27 日午前 4:58 UTC](https://community.cybozu.dev/t/topic/111/1 "2022-09-27T04:58:32Z")

</div>

Node.jsにて外部連携で画像をアップロード、ダウンロードされる方は、XMLHttpRequestを使用されるかと思われますが、実装方法とリクエストヘッダの記載方法を投稿させて頂きます。

**下準備：**

- Node.jsのインストール,
- npmにて"XMLHttpRequest" のインストール

＊AUTH-KEY,API-TOKENなどの肝要な情報に関しては、dotenvなどを使って環境変数として定義して扱ってあげてください。

dotenvの参考記事:[https://qiita.com/ozaki25/items/3e2cf94f29bd0edc1979](https://qiita.com/ozaki25/items/3e2cf94f29bd0edc1979)&nbsp;

**処理内容：**

今回は、XMLHttpRequestの実装・リクエストヘッダの記載方法ですので、レコード一件に対してGETしてみます。

```
メソッド：GET
クエリ：url
同期処理の可否: false (falseで同期処理になります。)
リクエストヘッダ： 'X-Requested-With':'XMLHttpRequest' ,
            'X-Cybozu-Authorization':'process.env.KINTONE_USER_TOKEN , 

```

&nbsp;

**実際のサンプルコード：**

```
'use strict';

    let XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest; //XMLHttpRequestの定義

    require('dotenv').config(); //dotenvの定義

    const url = 'https://' + process.env.KINTONE_DOMAIN + '.cybozu.com/k/v1/record.json?app=316&id=1' //クエリURLの作成 app=取得したいアプリID&id=取得したいレコードID

    const xhr = new XMLHttpRequest(); //XMLHttpRequestの作成

  xhr.open('GET', url, false); //メソッド , URLクエリ , 同期処理の可否 falseで同期処理になります。
  xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); //ここからリクエストヘッダに情報をセットしていきます。
  xhr.setRequestHeader('X-Cybozu-Authorization', process.env.KINTONE_USER_TOKEN); //アプリに対して権限がなくてもログイン必須
  xhr.onload = () => { //XMLHttpRequestのリクエストステータスの確認
      if (xhr.status === 200) {
          // success
          console.log(JSON.parse(xhr.responseText));
      } else {
          // error
          console.log(JSON.parse(xhr.responseText));
      }
  };
  xhr.send();

```

リクエストヘッダの内容については、下記のURLの記事を参考にしてみてください。

[https://developer.cybozu.io/hc/ja/articles/202111374-User-API-%E3%81%AE%E5%85%B1%E9%80%9A%E4%BB%95%E6%A7%98](https://community.cybozu.dev/hc/ja/articles/202111374-User-API-%E3%81%AE%E5%85%B1%E9%80%9A%E4%BB%95%E6%A7%98)&nbsp;

&nbsp;

[X-Cybozu-Authorization]は、普段使われているログインID、PWをBASE64エンコードに変換して値として

```
xhr.setRequestHeader('X-Cybozu-Authorization', process.env.KINTONE_USER_TOKEN)

```

でリクエストヘッダの配列に入れてあげてください。

[X-Cybozu-API-TOKEN]で取得したい場合は、アプリのAPIキーを値として入力して

```
xhr.setRequestHeader('X-Cybozu-API-TOKEN', process.env.KINTONE_API_TOKEN)

```

でリクエストヘッダの配列に入れてあげてください。

以上簡単ではございますが、説明は以上となります。

もしなにか不明なことあればご質問お願いいたします。

**参考資料：**

[https://developer.mozilla.org/ja/docs/Web/API/XMLHttpRequest/Using\_XMLHttpRequest](https://developer.mozilla.org/ja/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest)&nbsp;

&nbsp;

&nbsp;
