###前提・実現したいこと
node.js + express4にてPOSTを行うAPIの作成をしています。
とある事情にて、POSTリクエストをするクライアントからはheaderのcontent-type:x-www-form-urlencoded;charset=Shift_JISが指定されている仕様であり、それを、node.js + express環境のPOSTAPIにてレスポンスを返しています。
APIにいたってはレスポンス自体は定型文を返すだけですので、問題がありませんが、リクエストデータが取得できない状態です。
expressにいたってはbody-parser moduleを使えば取得できるみたいですが、SJISは未対応のようです。。。
そもそもnode.jsではutf8 onlyなのは承知ですが、今回はこの環境で何とかしたいと考えています。
どうかご教授いただけますでしょうか。
###発生している問題・エラーメッセージ
module:body-parserにて以下のエラーが出ます。 UnsupportedMediaTypeError: unsupported charset "SHIFT_JIS
###該当のソースコード
//moduleの呼び出し
var express = require('/usr/lib/node_modules/express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.urlencoded({extended: true}));
// POSTの処理
app.post('/', function (req, res) {
console.log(req.body);
res.header("Content-Type", "text/plain");
res.send('OK');
});
//portの指定
app.listen(3000);
module.exports = app;
###試したこと
クライアント側のリクエストheaderをx-www-form-urlencodedのみにした場合は、body-parserでリクエストデータを取得できました。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。