发送带有 csv 正文的 axios Post 请求

时间:2021-01-11 20:48:54

标签: reactjs

我想要实现的是使用 axios 从我的前端向后端发送一个 post 请求。这个 post 请求的主体中有一个 csv 文件。

使用邮递员:postman request

我的代码是这样的:

import React, { Component } from 'react';
import axios from 'axios'

class SessionsUpdate extends Component {
  state = {
    selectedFile: null
  }


  handleSubmit = async () => {
    let formData = new FormData();
    formData.append('file', this.state.selectedFile);
    await axios.post(
      'https://localhost:8765/...', 
      formData,
      { headers: { 'x-observatory-auth': localStorage.getItem("token"), 'Content-Type': 'multipart/form-data' } }
    )

    console.log("log")  //this is not printed here
  }

  onFileChange = event => {
    this.setState({ selectedFile: event.target.files[0] });
  };

  render() {
    return (
      <form onSubmit={this.handleSubmit}>
        <div>
          <h1>Choose a file to store</h1>
        </div>
        <div>
          <fieldset>
            <input type="file" accept=".csv" onChange={this.onFileChange} />
          </fieldset>
        </div>
        <input type="submit" value="Submit" />
      </form>
    );
  }
}

export default SessionsUpdate;

所以 HTML 部分创建了一个简单的 GUI 来从本地存储中选择一个 csv 文件,我想要的是将这个 csv 文件传递​​给我的帖子请求。在网上搜索后,我发现这样做的主要方法是使用 formdata 但是它在我的情况下不起作用,我已经被困在这个问题上很长一段时间了。不过,这个请求在邮递员上工作得很好。

对我缺少的东西有什么想法吗?

0 个答案:

没有答案