req.body解析post数据出错的问题
2016-08-07 13:30
946 查看
在用ajax向后台发送数据的时候出现了解析出错的情况,环境为nodejs+express4.x
app.html
app.js
ERROR,req.body把传过来的字符串解析为了键值对数据,但是Express4.x自带的模块body-parser应该能够正确解析json,这是为什么呢?查阅很多资料,明白了。
因为在$.ajax函数里面还有一个contentType属性,用来设置传输数据的类型,不设置的时候它默认为”application/x-www-form-urlencoded”,所以body-parser识别不了,所以在ajax里添上一句contentType:’application/json’(别忘了逗号),问题解决。
以上。
app.html
<script type="text/javascript"> var userdata={ username:"root", password:"root", }; var userJSON=JSON.stringify({data:userdata}); console.log(userJSON); $.ajax({ url:"/submit", type:"post", data:userJSON, datatype:"json", success: function(data){ data=JSON.parse(data); var html = template('test',data); $("#tableshow").html(html); }, error: function(data){ console.log("error"+data.message); } }); </script>
app.js
var bodyParser = require('body-parser'); ... app.use(bodyParser.json()); ... app.post('/submit',function(req,res,next){ console.log(req.body); res.status(200); }); //打印req.body如下 //{ '{"data":{"username":"root","password":"root"}}': '' } //正确的应该为 //{ data: { username: 'gang', password: 'root' } }
ERROR,req.body把传过来的字符串解析为了键值对数据,但是Express4.x自带的模块body-parser应该能够正确解析json,这是为什么呢?查阅很多资料,明白了。
因为在$.ajax函数里面还有一个contentType属性,用来设置传输数据的类型,不设置的时候它默认为”application/x-www-form-urlencoded”,所以body-parser识别不了,所以在ajax里添上一句contentType:’application/json’(别忘了逗号),问题解决。
$.ajax({ url:"/submit", type:"post", data:userJSON, contentType:'application/json', datatype:"json", success: function(data){ data=JSON.parse(data); var html = template('test',data); $("#tableshow").html(html); }, error: function(data){ console.log("error"+data.message); } });
以上。
相关文章推荐
- 解决Postman发送post数据但是Node.js中req.body接收不到数据的问题[已解决]
- 解决Postman发送post数据但是Node.js中req.body接收不到数据的问题
- 【soapUI】解决post请求时,body为json串,服务器无法解析问题
- nodejs中req.body对请求参数的解析问题
- nodejs中req.body对请求参数的解析问题
- Retrofit2+RxJava2 使用POST方式提交JSON数据,服务器无法解析的问题
- express 4.x req.query(get方式) req.body(post方式) 接收浏览器发送过来的数据
- nodejs body-parser 解析post数据
- Android的okhttp的post请求,php返回json数据。以及遇到的okhttp dispatcher问题,和json解析遇到的问题
- php下POST json数据无法解析问题
- PHP 出现解析json数据出错的问题
- OpenResty中post请求body数据部分丢失问题解决
- Jsp&Servlet 【post】传输数据乱码问题深入解析
- C# POST数据base64到接口会出错的问题
- ASIHTTP请求的数据解析出错问题Error Domain=NSCocoaErrorDomain Code=3840 "Unable to convert data to string around
- python 解析http post传递的数据(FieldStorage类 如何 解析http body中json数据)
- PHP接收IOS post过来的json数据无法解析的问题
- nodejs body-parser 解析post数据实例
- Oracle IO问题解析(六)—— 数据文件相关的IO事件
- EnableViewState问题,在用gridview的编辑功能更新数据时候出错