javascript - React dropzone 无法使用 axios 发布

标签 javascript reactjs post axios dropzone

我尝试在代码中使用react-dropzone并使用axios向服务器发出POST请求,但POST请求总是失败,并且不断收到以下错误:

未捕获( promise 中)错误:请求失败,状态代码为 500

这是我的组件

constructor(props) {
  super(props);
  this.state = {
    accepted: [],
  };

  ['handleChange', 'handleValidSubmit'].forEach(v => {
    this[v] = this[v].bind(this);
  });
}

handleValidSubmit(event, values) {
  const data = {
    accepted: this.state.accepted,
  };
  console.log(data);
  axios({
    method: 'post',
    url:
      'https://oc6tq8iop5.execute-api.ap-southeast-1.amazonaws.com/dev/upload',
    data: JSON.stringify(data),
  }).then(data => {
    console.log(data);
    onDrop: accepted => {
      accepted.forEach(file => {
        req.attach(file.name, file);
      });
      req.end(callback);
      var formData = new FormData();
      formData.append('gambar', values.accepted);
      console.log(formData);
    };
  });
}

handleChange(event) {
  const { target } = event;
  const value = target.type === 'checkbox' ? target.checked : target.value;
  const { name } = target;

  this.setState({
    [name]: value,
  });
}

这是我的渲染方法

<div className="dropzone">
  <Dropzone
    accept="image/jpeg, image/png, image/jpg"
    onDrop={accepted => {
      this.setState({ accepted });
    }}
    maxSize={200000}
    multiple={false}
  >
    <p>Maksimal 2 MB (JPG/PNG)</p>
  </Dropzone>
  {this.state.accepted.map(f => (
    <span key={f.name}>
      {f.name} - {f.size} bytes
    </span>
  ))}
</div>

最佳答案

您只需要使用 axios 发送 header 即可,

const config = { headers: { 'Content-Type': 'multipart/form-data' } };
let fd = new FormData();

values.map((file) => {
  fd.append('File[]',file);
});

axios.post(`${ROOT_URL}/ImageUpload`, fd, config)
  .then((response) => {
    callback(response);
  })
  .catch(error => {
      errorResponse(error);
  })

关于javascript - React dropzone 无法使用 axios 发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50387610/

相关文章:

javascript - 无论嵌套元素的数量如何,使用 javascript (jquery) 查找最里面的文本并替换它

javascript - “未知提供商”尝试在 MeanJS v0.4.1 应用程序中包含 Angular-Websocket

javascript - 为什么 Typescript 中返回值是 'undefined'?

javascript - React.js - 无法从组件获取特定的 prop

reactjs - 如何在 React 中使用 console.log Prop ?

javascript - Ajax 和 PHP : Is it possible to have Javascript, Ajax 函数和 PHP 帖子在单个提交中执行?

javascript - 服务器端 AJAX post 为空(PHP)

javascript - iPhone 上的 Three.js 项目 - 事件问题(选择&拖动对象)

javascript - 您可能需要适当的加载程序来处理此文件类型 : arrow function in react component

php - 我发送 cURL 帖子的页面必须对 "Respond"做什么?