React を使った Cordova アプリでサーバーにデータを POST 送信をする方法です。
以前は Ajax を使っていたのですが、他の書き方も知りたいと思い、今回は「Fetch API」を使ってみることにしました。
使用方法の例も見て、使いやすそうだったのでチョイスしました。
GitHub のページはこちらから。
GitHub – github/fetch: A window.fetch JavaScript polyfill.
https://github.com/github/fetch
まず npm で Fetch API をインストールします。
npm install whatwg-fetch --save
上記コマンドの実行が完了したら、下記をプログラムに追加して、インポートします。
import 'whatwg-fetch';
あとは、GitHub のページを参考にして、HTML の取得や、POST 送信を行うだけです!
私は POST 送信を行いたかったので、下記のようにコードを記述しました。
// POST送信 fetch('[送信先のURL]', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'Hubot', login: 'hubot', }) }).then(function(response) { // レスポンス結果 }, function(error) { // エラー内容 });
上記コードでは、2行目で送信先の URL を指定し、8~9 行目で送信するデータを指定しています。
なお、データは JSON 形式で送信するので、JSON.stringify()
を使って JSON 形式に変換しています。
レスポンス結果やエラー内容は、それぞれ 11行目と 13行目で取得できます。
仕様に応じてエラーメッセージを表示したり、「送信完了しました」メッセージを表示したりしてください。
以上、「Fetch API」を使って、サーバーにPOST送信を行う方法でした。
実はエラーが発生してしまっているので、まだ実際には動かせてはいないのですが、コードはシンプルで分かりやすそうです。
また有益そうな情報が得られたらご紹介したいと思います。