javascript - 如何在node.js中发送表单数据

标签 javascript node.js https multipartform-data form-data

我能够访问服务器,但无法发布我的表单数据。 我应该如何使用 https 请求发布表单数据? 我使用表单数据库作为表单数据,并使用 https 请求进行后调用。 当我运行以下代码时,我能够访问该服务,但该服务给出响应,表示表单数据未提交。

var https = require('https');
var FormData = require('form-data');
//var querystring = require('querystring');
var fs = require('fs');
var form = new FormData();

connect();

function connect() {
    username = "wr";
    password = "45!"

    var auth = 'Basic ' + new Buffer(username + ':' + password).toString('base64');
    var options = {
        hostname: 'trans/sun.com',
        port: 443,
        path: '/transfer/upload-v1/file',
        method: 'POST',
        rejectUnauthorized: false,
        headers: {
            'Authorization': auth,
            'Content-Type': 'application/json',
            //'Content-Length': postData.length
        }
    };

    form.append('deviceId', '2612');
    form.append('compressionType', 'Z');
    form.append('file', fs.createReadStream('/Mybugs.txt'));

    var req = https.request(options, function(res) {
        console.log("statusCode: ", res.statusCode);
        //console.log("headers: ", res.headers);
        res.setEncoding('utf8');
        res.on('data', function(d) {
            console.log(d)
        });
    });

    req.write(form + '');
    req.end();

    req.on('error', function(e) {
        console.error(e);
    });
}

最佳答案

您从未将您的表单链接到您的请求。检查 form-data documentation 提供的此示例

var http = require('http');

var request = http.request({
  method: 'post',
  host: 'example.org',
  path: '/upload',
  headers: form.getHeaders()
});

form.pipe(request);

request.on('response', function(res) {
  console.log(res.statusCode);
});

关于javascript - 如何在node.js中发送表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30188392/

相关文章:

angularjs - 用于大型项目的 Angular 2 或 NodeJs/Express

node.js 设置 cookie 并发送 gif 作为响应

ssl - OpenWRT HTTPS/SSL 流量重定向

amazon-web-services - 如何将我的 http 网站转为 https

javascript - 克隆 div 并删除类而不更改原始类

javascript - 将 div 标签扩展到页面的长度

javascript - Sails.js 水线破坏 "lower or equal"标准

带有 getter 和 setter 的 JavaScript 类导致 RangeError : Maximum call stack size exceeded

javascript - NUXT - 如何更好地重构计算属性

asp.net - 如何在 ASP.NET 页面生命周期中从 HTTP 重定向到 HTTPS?