スマートフォン・タブレットからインターネットサーバーオペレーション

APPW.jp

Node.js で jQuery Ajax POST を試します

Node.js において、jQuery Ajax の POST メソッドを試してみます。

Node.js で動作テストしてみる場合や、パッケージビルドする場合の参考になるかもしれません。

まず、かんたんに Node.js のインストールのおさらいです。

たとえば、Ubuntu 16.04 LTS 標準のままの apt もしくは apt-get でインストールすると、古いバージョンがインストールされます。



$ sudo apt install nodejs

このことをふまえながら Google 検索してみていくと、Ubuntu では、多くの方が n というバージョン管理パッケージを利用しているようです。

今回は、npm も含めてインストールは簡単に、という思いもあり、以下のページの手順でインストールを進めました。

https://nodejs.org/en/download/package-manager

LTS( long-term support )版の場合。



$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt install -y nodejs

最新版の場合。



$ curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
$ sudo apt install -y nodejs

この手順では、Node.js とともに npm もインストールされます。また、nodejs コマンドのほか、node コマンドでも使えるようになっています。

次に、npm を利用して jQuery をインストールします。

jquery - npm



$ npm i jquery

ちなみに、バージョンを指定する場合はこうなります。指定していない場合は、つねに最新バージョン(この記事の時点では、3.3.1)となります。



$ npm i jquery@1.12.4

そして、Node.js において jQuery を実行する方法のひとつとして、npm を利用して jsdom-no-contextify をインストールします。

jsdom-no-contextify - npm



$ npm i jsdom-no-contextify

JSON 形式のデータを POST 送信して、JSON 形式で受ける想定のコードです。



var $ = require('jquery')(require('jsdom-no-contextify').jsdom().parentWindow);

var json_data = {
    'id': '0',
    'name': 'example'
};

$.ajax({
  type:'POST',
  url:'https://hoge.jp/hoge',
  data:JSON.stringify(json_data),
  contentType: 'application/json',
  scriptCharset:'utf-8',
  dataType: 'json'
}).done(function(data,textStatus,jqXHR) {
  console.log(data); 
}).fail(function(jqXHR, textStatus, errorThrown ) {
  console.log(textStatus); 
});

ajax-post.js で保存して実行するものとします。



$ node ajax-post.js

なお、ブラウザ用にビルドする場合に、jsdom-no-contextify は不要です。サンプルコードの1行目は次のようになります。



var $ = require('jquery');

または、



lmport $ from 'jquery';

『Node.js で jQuery Ajax POST を試します』を公開しました。