簡體   English   中英

通過nodejs下載響應POST請求而發送的文件? (沒有AJAX)

[英]Downloading a file sent in response to a POST request via nodejs? (no AJAX)

我有一個nodejs服務器,它不時向我無法控制的外部第三方服務器提交郵寄表格-因此,我無法執行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'))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM