nodejs

时间:2018-02-14 13:51:45

标签: node.js express body-parser

在我的nodejs应用程序中,我使用以下代码行来获取req.body

app.use(bodyParser.urlencoded({     延长:假 }));

这个工作正常但是我的应用程序有一个请求,它会抛出以下错误

UnsupportedMediaTypeError:不支持的字符集“ISO-8859-1”     在urlencodedParser(/var/www/payment/node_modules/body-parser/lib/types/urlencoded.js:108:12)     在Layer.handle [as handle_request](/var/www/payment/node_modules/express/lib/router/layer.js:95:5)     在trim_prefix(/var/www/payment/node_modules/express/lib/router/index.js:317:13)     at /var/www/payment/node_modules/express/lib/router/index.js:284:7     在Function.process_params(/var/www/payment/node_modules/express/lib/router/index.js:335:12)     在下一个(/var/www/payment/node_modules/express/lib/router/index.js:275:10)     在jsonParser(/var/www/payment/node_modules/body-parser/lib/types/json.js:118:7)     在Layer.handle [as handle_request](/var/www/payment/node_modules/express/lib/router/layer.js:95:5)     在trim_prefix(/var/www/payment/node_modules/express/lib/router/index.js:317:13)     at /var/www/payment/node_modules/express/lib/router/index.js:284:7

我几乎花了很多时间。但如果我删除

app.use(bodyParser.urlencoded({     延长:假 }));

此行然后为该请求工作,但其他我无法从所有其他请求中检索数据。

有没有办法解决这个问题。

1 个答案:

答案 0 :(得分:0)

您可以将原始请求标头修改为UTF-8。

我发现拦截urlencoded解析器没有简单的方法,所以我只是将编码更改为utf8