簡體   English   中英

通過CLI的400錯誤請求Ajax發布

[英]400 bad request Ajax post via CLI

我的任務是利用node.js創建基於節點CLI的軟件。 以下是一個簡單的視頻示例。 我已經設法將Ajax轉換為API以獲取數據,但是我需要將此數據轉換為CSV並使用時間戳在本地保存到特定文件中。

我假設必須通過使用相關數據執行Ajax發布請求來在PHP中實現文件保存。 但是,每當我嘗試發布到簡單的php測試文件時,我都會收到400錯誤的請求錯誤。

我沒有使用瀏覽器來執行ajax請求(使用conEmu64中的控制台命令),我認為這是嘗試HttpRequest時的問題。 ajax get請求可以很好地從api檢索數據,只是不確定為什么在將請求發布到本地PHP文件時會發生此錯誤。

  • 誰能在沒有瀏覽器的情況下建議Ajax發布的最佳方法?
  • 我是否應該嘗試僅在Java腳本中保存CSV?

嘗試1:基本Javascript和XMLHttpRequest模塊

XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;

function createCSV(request) {
    var xhr = new XMLHttpRequest;

    xhr.open('POST', 'server/save');
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.onload = function() {
        console.log(xhr);
        if (xhr.status === 200) {
            console.log('Name is now ' + xhr.responseText);
        }
        else if (xhr.status !== 200) {
            console.log('Request failed.  Returned status of ' + xhr.status);
        }
    };
    xhr.send(JSON.stringify({
        name: 'John Smith',
        age: 34
    }));
  }

嘗試2:Axios模塊

 const axios = require('axios');

 function createCSV(request) {

    axios.post('server/save', {
        firstName: 'Fred',
        lastName: 'Flintstone'
    })
        .then(function (response) {
            console.log(response);
        })
        .catch(function (error) {
            console.log(error);
        });
    }

簡單的視頻要求

您可以使用節點執行此操作。 您是否嘗試過使用FS之類的東西?

該答案最初發布在此處在Node.js中寫入CSV

您可以使用fs( https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback ):

var infoReturnedFromAxiosGet;
var timeStamp;
var fs = require('fs');

fs.writeFile('yourfoldername/' + timeStamp + '.csv', infoReturnedFromAxiosGet, 'utf8', function (err) {
  if (err) {
    console.log('Some error occured - file either not saved or corrupted file saved.');
  } else{
    console.log('It\'s saved!');
  }
});

暫無
暫無

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

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