繁体   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