0
가맹점 시스템 용 REST API를 구현 중입니다. 이 판매자 시스템은 지불 확인 POST 요청을 시스템에 지정된 URL로 전송하며이 요청은 windows-1251로 인코딩됩니다. 로그 문nonUTF로 인코딩 된 POST 요청을위한 유티 라우팅
Router.route('/api/payments/result/',{where: "server", name: 'payments-result'})
.post(function() { });
Router.onBeforeAction(function (req, res, next) {
logger.info('GOT A CONFIRMATION REQUEST');
logger.info(`request headers are: ${req.rawHeaders}`);
logger.info('request is: ');
Object.keys(req.body).forEach(key => {
let val = req.body[key];
logger.info(`${key} : ${val}`);
});
res.end('hello from the server\n');
},{where: 'server', only: ['payments-result']});
없음이 실행되지 않습니다 :
내가이 요청을 처리하기 위해 철 라우터와 restivus을 시도했습니다, 둘 다
UnsupportedMediaTypeError: unsupported charset "WINDOWS-1251"
at Object.urlencodedParser [as handle] (/home/dev/builds/bundle/programs/server/npm/node_modules/meteor/simple_json-routes/node_modules/connect/node_modules/body-parser/lib/types/urlencoded.js:102:12)
at next (/home/dev/builds/bundle/programs/server/npm/node_modules/meteor/webapp/node_modules/connect/lib/proto.js:174:15)
at middleware (packages/oauth.js:107:7)
at packages/oauth.js:96:5
이 나의 현재 철 라우터 코드가
오류로 인해 실패 onBeforeAction 후크 중에도.질문은 올바른 요청 디코딩을 설정하거나 utf-8로 인코딩 된 요청을 받아들이는 body-parser를 피하는 방법을 알아 냈습니다.
UPDATE 광고 호크 솔루션의 nginx를 사용하여 UTF8로 승리-1251을 변환하는 것이었다의 nginx에게