Dropzone使用' application / x-www-form-urlencoded'发送请求作为内容类型

时间:2017-05-18 05:58:47

标签: http-headers dropzone.js

我使用dropzone将文件上传到我的风帆后端。

在最长的时间里,我一直无法弄清楚它为什么不起作用。但是,当我将req对象放入console.log时,我得到了以下标题(即,这将是req.headers):

headers:
  { 'x-id': 'vendor-______________',
  'x-token': '_______________',
  host: 'localhost:1337',
  'content-type': 'application/x-www-form-urlencoded',
  'content-length': '0',
  connection: 'close' 
  },

我猜这意味着dropzone丢失了一些内容,因此它没有发送content-type multipart

的请求

这里是dropzone代码本身:(请注意,它与dropzone文档中给出的示例密切相关,但是是反应组件的一部分)

Component.add("DropzoneComponent", {
  getDefaultProps: function(){
    return {}
  },
  componentDidMount: function() {
      var c = this
      var field = new Dropzone(c.refs.dropzone, {
          url: c.props.url,
          paramName: "csv"
      });
      field.on("error", function(fileObject, err) {
        console.log("dropzone file object:", fileObject, "***Error message***", err);  
      })  
      field.on("success", function(fileObject, file){
          console.log("file object", fileObject, "file:", file);
      })  

  render: function(){
      return (
          <span>
            <input type="hidden" value={this.state.image || ""} name={this.props.name || ""} />
            <div id="upload-field" ref="dropzone" type="file" className="dropzone"></div>
          </span>
      )
  } 

对于为什么会这样,或者如果我误解了这种情况,有什么猜测?

1 个答案:

答案 0 :(得分:0)

看起来这实际上是由于我们最终如何设置axios。与this issue有关,与DropZone不相关。