gpt4 book ai didi

javascript - 下载通过nodejs响应POST请求发送的文件? (无 AJAX)

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:27 24 4
gpt4 key购买 nike

我有一个nodejs服务器,它时不时地向我无法控制的外部第三方服务器提交一个post表单 - 因此我无法执行AJAX请求。我也无法使用 get 。

当我在浏览器中运行代码时,发布请求会导致自动下载到默认位置。

如何在nodejs中将文件下载到服务器文件系统?

当前请求: $form.submit()

我发布的表格:

var $form = $('<form/>', {
method: 'post',
id: 'myForm',
name: 'myForm',
action: 'example.example'
});
var csvInput=$('<input/>', {name: 'myValue', value: 'Empty', type: 'hidden'});
$form.append(csvInput)
$form.append($('<input/>', {name: 'test X', value: '1', type: 'hidden'}));
$form.append($('<input/>', {name: 'test Y', value: '2', type: 'hidden'}));
$form.append($('<input/>', {name: 'test Z', value: '3', type: 'hidden'}));

(还有近 30 个输入字段)

解决方案

通过使用request函数和fd的键值数组解决了这个问题。

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'))

最佳答案

如果您使用请求模块,则可以将结果流式传输到文件中。

var formData = {
myValue: 'Empty',
testX: '1',
testY: '2',
'test Z': '3'
};

request.post('http://example.example', {form: formData}).pipe(fs.createWriteStream('./myfile.txt'))

关于javascript - 下载通过nodejs响应POST请求发送的文件? (无 AJAX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30651774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com