在我的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({ 延长:假 }));
此行然后为该请求工作,但其他我无法从所有其他请求中检索数据。
有没有办法解决这个问题。
答案 0 :(得分:0)
您可以将原始请求标头修改为UTF-8。
我发现拦截urlencoded解析器没有简单的方法,所以我只是将编码更改为utf8