request form时,form中有时通过body,有时通过formdata传数据,这有什么不同?
发布于 7 年前 作者 spursy 6578 次浏览 来自 问答

今天在看看node request API 时,发现requset在上传表单时可以通过下面两种方式:这两个方法有什么区别与联系,在实际开发中,应该如何选择? 1. POST data to a JSON REST API

var options = { method: ‘POST’, uri: ‘http://api.posttestserver.com/post’, body: { some: ‘payload’ }, json: true // Automatically stringifies the body to JSON };

2. POST like HTML forms do

var options = { method: ‘POST’, uri: ‘http://posttestserver.com/post.php’, formData: { // Like <input type=“text” name=“name”> name: ‘test.jpg’, // Like <input type=“file” name=“file”> file: { value: fs.createReadStream(‘test/test.jpg’), options: { filename: ‘test.jpg’, contentType: ‘image/jpg’ } } }, headers: { /* ‘content-type’: ‘application/x-www-form-urlencoded’ */ // Is set automatically } };

3 回复

参数、传递的数据量比较少时用GET 参数、传递的数据量相对多用POST 需要上传文件就使用form提交

看服务端啦… 首选 application/json, 但 urlencoded 兼容性好 application/json 到服务端 decode 出来可以表达 Number / int / float / double / bool 等等数据类型, urlencoded 只有 String

当然 node 这边的 qs parser 可以解析 querystring 表达数组 / object 嵌套, 但是这个没有规范, 建议不要使用

回到顶部