【问题标题】:How to encode form data passed in the post request如何对 post 请求中传递的表单数据进行编码
【发布时间】:2015-08-20 04:20:18
【问题描述】:

我无法切换到 AJAX,因为它是第三方服务器。我正在使用 nodejs 和请求库。工作(客户端机器测试)和非工作(节点 js 机器)请求之间的原始数据差异似乎是空间的编码方式。在客户端计算机上,在 chrome 检查器中,我将空格视为 + 符号。该请求有效。但是在 nodejs 终端中,我将空格视为%20。如果我尝试自己添加+,我会将它们视为%2B

该请求导致自动下载我想要保存到服务器文件系统的 csv 文件。

     fd={'key A to B':'value',
     'key B to C':'value B to C',
     'key C' : 'valueC',
     'numKey' : 1} 

    request.post('http://service.com/upload').form(fd).pipe(fs.createWriteStream('./myfile.csv'))

【问题讨论】:

    标签: node.js forms post request


    【解决方案1】:

    通过远离request.post 并使用更通用的request 函数解决了这个问题:

    request({
       method: 'POST',
       uri: 'http://example.com/',
       headers: { 
         host: 'example.com',
         'content-type': 'application/x-www-form-urlencoded' },
         body: $.param(fd)}
    ).pipe(fs.createWriteStream('myfile.csv'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-22
      • 1970-01-01
      相关资源
      最近更新 更多